Բովանդակություն:

Clap-on Switch: 7 քայլ (նկարներով)
Clap-on Switch: 7 քայլ (նկարներով)

Video: Clap-on Switch: 7 քայլ (նկարներով)

Video: Clap-on Switch: 7 քայլ (նկարներով)
Video: Սեր և աղավնիներ 2024, Հուլիսի
Anonim
Image
Image

Հարազատներից մեկը մի անգամ ինձ հարցրեց, թե կարո՞ղ եմ անջատիչ ստեղծել, որն արձագանքում է ձեր ձեռքերին ծափահարելուն: Այսպիսով, ես որոշ նյութեր պատվիրեցի նախագիծ ստեղծելու համար և որոշեցի պատրաստել ուսանելի, որպեսզի յուրաքանչյուրը կարողանա ունենալ այդպիսի հիանալի անջատիչ:

Միկրոկոնտրոլերն այս նախագծի ուղեղն է: Ձայնի տվիչը միացված է միկրոկառավարիչին, սենսորը անալոգային տվյալներ է ուղարկում, երբ ձայնը հայտնաբերվում է: Միկրոկառավարիչը ծրագրված է ձայնի մեծ տարբերություններ հայտնաբերելու համար: Երբ հայտնաբերվում է բավականաչափ բարձր տարբերություն, ինչը նշանակում է ծափ, միկրոկոնտրոլերը ազդանշան է փոխանցում ռելեին: Ռելեն միանում է, և լույսը միանում է: Երկրորդ անգամ ծափահարելիս լույսը նորից կփակվի:

Պարագաներ

Ֆիզիկական իրեր.

  • 1x ATmega328P Xplained Mini մալուխով `ծրագրավորման համար
  • 1x 5v ռելեի մոդուլ 1-ալիք (KY-019 կամ նմանատիպ)
  • 1x Ձայնի տվիչի մոդուլ (KY-038 կամ նմանատիպ)
  • 1x Breadboard
  • 6x Արական և Արական թռիչքի մետաղալար
  • 1x թեթև վարդակից լարով (կամ ցանկացած այլ սարք, որը ցանկանում եք միացնել)
  • 1x լամպ
  • 1x դիմադրություն* (ես օգտագործում եմ 220 Օմ)
  • 1x LED*

Softwareրագրային ապահովում (ներբեռնում):

  • AtmelStudio 7.0 (https://www.microchip.com/mplab/avr-support/atmel-studio-7)
  • Tyեփամածիկ (www.putty.org)*

* Փորձարկման նպատակով

Քայլ 1: Միացումներ

Creatրագրի ստեղծում
Creatրագրի ստեղծում

Միացրեք բոլոր լարերը, ինչպես ցույց է տրված նկարում:

Քայլ 2: ingրագրի ստեղծում

Ingրագրի ստեղծում
Ingրագրի ստեղծում
Creatրագրի ստեղծում
Creatրագրի ստեղծում

Ես սիրում եմ C- ով ծածկագրել, այնպես որ այս նախագիծը գրված է C- ով:

Եթե դեռ չեք ներբեռնել և տեղադրել անհրաժեշտ ծրագրակազմը, ներբեռնեք և տեղադրեք այն հիմա:

Այժմ հետևեք այս հաջորդ քայլերին.

  1. Բացեք AtmelStudio- ն:
  2. Կտտացրեք «Ֆայլ» -> «Նոր» -> «Նախագիծ»:
  3. Կտտացրեք «GCC C Կատարելի նախագիծ»: Տվեք ձեր նախագծին անուն և վայր ՝ պահելու համար: Կտտացրեք «Լավ»:
  4. Որոնեք ATmega328P- ը: Կտտացրեք «ATmega328P» -> «Լավ»:
  5. Կտտացրեք Solution Explorer- ին «main.c» - ում ՝ հիմնական ծրագիրը բացելու համար:

Քայլ 3: Կոդ ավելացնելը

Leteնջել main.c- ում արդեն առկա կոդը

Պատճենեք և տեղադրեք հետևյալ ծածկագիրը main.c- ում

#սահմանի F_CPU 16000000

#ներառել #ներառել #ներառել #ներառել "usart.h" #սահմանել MINIMALVALUE 5 void InitADC (); uint16_t ReadADC (uint8_t ADCchannel); կրկնակի val1, val2; int main (անվավեր) {// Initialise the USART USART_init (9600); USART_putstr ("#USART init / n"); // Նախաստորագրեք ADC InitADC (); USART_putstr ("#ADC init / n"); // PORTC ելքի PC1 քորոց, մնացածը ՝ մուտքագրում: DDRC = 0b00000010; // սկզբնական արժեքները սահմանել PORTC ցածր: PORTC = 0b00000000; մինչդեռ (1) {// կարդալ պոտենցիոմետրի արժեքը // կարդալ արժեքը և պահպանել val1 val1 = ReadADC (0); _ ուշացում (1); // կարդալ հաջորդ արժեքը en store in val2 val2 = ReadADC (0); char փող [10]; // ReadADC () արժեքը վերադարձնում է ամբողջ թվերով: Եթե ցանկանում ենք վրիպազերծել կամ տեսնել ծեփի արժեքը, // արժեքը պետք է փոխակերպվի նիշերի, որպեսզի USART- ը կարողանա տպել այն: itoa (val1, փող., 10); USART_putstr (փող); USART_putstr ("\ n"); // եթե 2 արժեքները որոշակի տարբերություն ունեն: Ձայնը հայտնաբերվում է և փոխում է նավահանգիստը: // MINIMALVALUE- ը կարող է փոխվել, ավելացումը կդարձնի այն ավելի քիչ զգայուն: Նվազումը կդարձնի այն ավելի զգայուն, եթե (val1-val2> MINIMALVALUE || val2-val1> MINIMALVALUE) {PORTC ^= 0b00000010; // LIGHT ON UC _delay_ms (200); }}} void InitADC () {// Ընտրեք Vref = AVcc ADMUX | = (1 << REFS0); // սահմանել prescaller- ը 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. Կտտացրեք «սկսել առանց վրիպազերծման»:

Buildրագիրը կկառուցվի և կգրվի:

Երբ ծրագիրը ճիշտ է աշխատում, puTTY- ում կտեսնեք ամբողջ արժեքներ: Պտուտակահանի օգնությամբ ես կարող եմ փոխել puTTY- ում տեսած արժեքը ՝ պտուտակը պտտելով սենսորի վրա: Իմ տվիչը տալիս է 0 -ից 1000 արժեքները պտուտակն ամբողջովին պտտելիս: Պտուտակը պտտեցնում եմ ընդհանուր արժեքի 100 -ի (10%): Ես պարզեցի, որ սա աշխատում է ինձ համար:

Քայլ 6: Փոխեք զգայունությունը

Լույսը միացնելիս զգայունությունը կարգավորելու համար կարող եք օգտագործել 2 տարբերակ, բայց ընտրեք մեկը, ոչ թե երկուսը.

  1. Փոխել սենսորային պտուտակը;
  2. Փոխել կոդի արժեքը:

Ես օգտագործում եմ 2 -րդ տարբերակը: Եթե նվազագույն արժեքը ավելացնեք, այն կդառնա ավելի քիչ զգայուն, իսկ նվազումը `ավելի զգայուն:

#սահմանել ՄԻՆԱՇՆԱՀԱՏՈԹՅՈՆ 5

Քայլ 7: Փոխեք այն, ինչ ձեզ դուր է գալիս:

Փոխեք այն, ինչ ձեզ դուր է գալիս
Փոխեք այն, ինչ ձեզ դուր է գալիս
Փոխեք այն, ինչ ձեզ դուր է գալիս
Փոխեք այն, ինչ ձեզ դուր է գալիս

WԳՈՇԱՈՄ. Higherգույշ եղեք բարձր լարման միացման ժամանակ:

Երբ գոհ եք սենսորի զգայունությունից, կարող եք փոխել շրջանը: Փոխեք սխեման, ինչպես վերը նշված պատկերը: Այժմ կարող եք փոխել այն, ինչ ցանկանում եք:

Խորհուրդ ենք տալիս: