Мазмуну:

Clap-on Switch: 7 кадам (сүрөттөр менен)
Clap-on Switch: 7 кадам (сүрөттөр менен)

Video: Clap-on Switch: 7 кадам (сүрөттөр менен)

Video: Clap-on Switch: 7 кадам (сүрөттөр менен)
Video: Ганвест - НА РАХАТЕ (Official Remix) 2024, Июль
Anonim
Image
Image

Бир жолу тууганым менден сенин колуңду чапканга жооп бере турган коммутатор түзө аламбы деп сурады. Ошентип, мен долбоорду түзүү үчүн кээ бир нерселерди заказ кылдым жана ар бир адам ушундай сонун которгучка ээ болушу үчүн нускоочу болууну чечтим.

Микроконтроллер бул долбоордун мээси. Микроконтроллерге үн сенсору туташкан, сенсор үн аныкталганда аналогдук маалыматтарды жөнөтөт. Микроконтроллер үндөгү чоң айырмачылыктарды аныктоо үчүн программаланган. Качан жетишерлик чоң айырма табылганда, чапкылоону билдирет, микроконтроллер релеге сигнал жөнөтөт. Реле өчүп, жарык күйөт. Экинчи жолу чапканда, жарык кайра өчөт.

Жабдуулар

Физикалык заттар:

  • Программалоо үчүн кабели бар 1x ATmega328P Xplained Mini
  • 1x 5v реле модулу 1-канал (KY-019 же окшош)
  • 1x Үн сенсорунун модулу (KY-038 же окшош)
  • 1x нан тактасы
  • 6x Эркек-Эркек секирүүчү зым
  • Шнуру бар 1x жарык розеткасы (же күйгүңүз келген башка түзмөк)
  • 1x лампочка
  • 1х резистор* (мен 220 Ом колдоном)
  • 1x LED*

Программалык камсыздоо (жүктөө):

  • AtmelStudio 7.0 (https://www.microchip.com/mplab/avr-support/atmel-studio-7)
  • Putty (www.putty.org)*

* Сыноо максатында

1 -кадам: Байланыштар

Программаны түзүү
Программаны түзүү

Бардык зымдарды сүрөттө көрсөтүлгөндөй туташтырыңыз.

2 -кадам: Программаны түзүү

Программаны түзүү
Программаны түзүү
Программаны түзүү
Программаны түзүү

Мен Cде код жазганды жакшы көрөм, ошондуктан бул долбоор С тилинде жазылган.

Эгерде сиз керектүү программалык камсыздоону түшүрө элек болсоңуз, азыр жүктөп алып, орнотуңуз.

Эми бул кийинки кадамдарды:

  1. AtmelStudio ачуу.
  2. "Файл" -> "Жаңы" -> "Долбоорду" чыкылдатыңыз.
  3. "GCC C Executable Project" чыкылдатыңыз. Сактоо үчүн долбооруңуздун атын жана жайгашкан жерин бериңиз. "Ok" чыкылдатыңыз.
  4. ATmega328P издеңиз. "ATmega328P" -> "Ok" чыкылдатыңыз.
  5. Негизги программаны ачуу үчүн "main.c" боюнча Solution Explorerди чыкылдатыңыз.

3 -кадам: Кодду кошуу

Main.c ичинде болгон кодду жок кылыңыз

Төмөнкү кодду көчүрүп, main.cге чаптаңыз

#аныктоо F_CPU 16000000

#кошуу #кошуу #кошуу #кошуу "usart.h" #аныктоо MINIMALVALUE 5 жараксыз InitADC (); uint16_t ReadADC (uint8_t ADCchannel); кош val1, val2; int main (void) {// USART USART_initти баштоо (9600); USART_putstr ("#USART init / n"); // ADC InitADCти баштоо (); USART_putstr ("#ADC init / n"); // PORTC өндүрүшүнүн PC1 пини, калганын киргизүү. DDRC = 0b00000010; // баштапкы маанилерди PORTC төмөн коюңуз. PORTC = 0b00000000; while (1) {// окуу потенциометринин мааниси // val1 val1де окуу мааниси жана дүкөн val1 = ReadADC (0); _delay_ms (1); // кийинки баалуулукту дүкөндө оку val2 val2 = ReadADC (0); char str [10]; // ReadADC () кайра бүтүн сандарда маанини берет. Эгерде биз мүчүлүштүктөрдү оңдоону же көрүүнү кааласак, // маанини символдорго айландыруу керек, андыктан USART аны басып чыгара алат. itoa (val1, str, 10); USART_putstr (str); USART_putstr ("\ n"); // эгерде 2 маанинин белгилүү бир айырмасы болсо. Үн аныкталып, портту алмаштырат. // MINIMALVALUE өзгөртүлүшү мүмкүн, жогорулатуу аны азыраак сезимтал кылат. Азайтуу аны сезимтал кылат, эгерде (val1-val2> MINIMALVALUE || val2-val1> MINIMALVALUE) {PORTC ^= 0b00000010; // LIGHT ON UC _delay_ms (200); }}} void InitADC () {// Select Vref = AVcc ADMUX | = (1 << REFS0); // алдын ала орнотуучуну 128ге коюп, ADC ADCSRA иштетүү | = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0) | (1 << ADEN); } uint16_t ReadADC (uint8_t ADCchannel) {// коопсуздук маскасы менен ADC каналын тандаңыз ADMUX = (ADMUX & 0xF0) | (ADCchannel & 0x0F); // бирдиктүү айландыруу режими ADCSRA | = (1 << ADSC); // ADC конверсиясы бүткөнчө күтө туруңуз (ADCSRA & (1 << ADSC)); ADC кайтаруу; }

4 -кадам: USART кошуу

USART кошулууда
USART кошулууда

USART - микроконтроллерде колдонула турган сериялык байланыш протоколу. Мен аны сенсордон аналогдук маалыматтарды көрүү үчүн микроконтроллерде колдоном.

USART мурунтан эле туура программаланган, анда баш (.h) жана булак (.c) файлдары бар. 2 файлды жүктөп алып, аларды AtmelStudioдогу программаңызга кошуңуз.

Solution Explorerдеги долбоордун атын оң баскыч менен чыкылдатыңыз. "Кошуу" -> "Бар болгон нерсени…" чыкылдатып, жүктөлүп алынган 2 файлды тандаңыз.

5 -кадам: Кодду иштетүү

Кодду иштетүү
Кодду иштетүү
Кодду иштетүү
Кодду иштетүү

Микроконтроллерди компьютерге туташтырыңыз. Компьютериңизден "түзмөк менеджери" деп издеп, ачыңыз. "Портторду (COM & LPT)" издеңиз жана микроконтроллердин COM портун эстеп көрүңүз.

PuTTY ачып, "Сериал" баскычын чыкылдатыңыз, микроконтроллерден тапкан COM-портуңузду териңиз жана "Ачуу" баскычын басыңыз. Терминал ачылат, азырынча калтырыңыз.

Микроконтроллерди программалоо үчүн туура куралды тандоо үчүн AtmelStudioго кайтыңыз.

  1. Балка куралын басыңыз.
  2. "MEDBG*ATML" мүчүлүштүктөрдү оңдоочу/программистти тандаңыз.
  3. "DebugWIRE" интерфейсин тандаңыз.
  4. "Мүчүлүштүктөрдү оңдоосуз баштоо" баскычын чыкылдатыңыз.

Программа куруп жана жазат.

Программа туура иштегенде puTTYдеги бүтүн маанилерди көрөсүз. Бурагычтын жардамы менен puTTYдеги баалуулукту сенсордун бурамасын буруп өзгөртө алам. Менин сенсорум бураманы толугу менен бурганда 0дон 1000ге чейинки маанилерди берет. Мен бураманы жалпы нарктын 100гө (10%) бурам. Бул мен үчүн иштээрин билдим.

6 -кадам: Сезгичтикти өзгөртүү

Жарык күйгөндө сезимталдыкты жөнгө салуу үчүн 2 жолду колдонсоңуз болот, бирок экөөнүн бирин тандабаңыз:

  1. Сенсордун бурамасын алмаштыруу;
  2. Коддун маанисин өзгөртүү.

Мен 2 -вариантты колдоном. MINIMALVALUE wil аны азайтат, азайтса сезимтал кылат.

#DINFINE MINIMALVALUE 5

7 -кадам: Сизге жаккан нерсени алмаштырыңыз

Сизге жаккан нерсени алмаштырыңыз!
Сизге жаккан нерсени алмаштырыңыз!
Сизге жаккан нерсени алмаштырыңыз!
Сизге жаккан нерсени алмаштырыңыз!

ЭСКЕРТҮҮ: Жогорку чыңалууну алмаштырууда сак болуңуз

Сенсордун сезгичтиги менен бактылуу болгондо, сиз схеманы өзгөртө аласыз. Жогорудагы сүрөттөгүдөй схеманы өзгөртүңүз. Эми сиз каалаган нерсени алмаштыра аласыз!

Сунушталууда: