Turinys:
- Prekės
- 1 žingsnis: jungtys
- 2 žingsnis: programos sukūrimas
- 3 žingsnis: kodo pridėjimas
- 4 veiksmas: pridėkite USART
- 5 žingsnis: paleiskite kodą
- 6 žingsnis: pakeiskite jautrumą
- 7 žingsnis: pakeiskite viską, kas jums patinka
Video: „Clap-on“jungiklis: 7 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Giminaitis vieną kartą manęs paklausė, ar galėčiau sukurti jungiklį, kuris reaguotų į plojimą rankomis. Taigi aš užsisakiau tam tikrų dalykų, kad galėčiau sukurti projektą, ir nusprendžiau padaryti pamokomą, kad kiekvienas galėtų turėti tokį nuostabų jungiklį.
Mikrovaldiklis yra šio projekto smegenys. Garso jutiklis prijungtas prie mikrovaldiklio, jutiklis siunčia analoginius duomenis, kai aptinkamas garsas. Mikrovaldiklis yra užprogramuotas aptikti didelius garso skirtumus. Kai aptinkamas pakankamai didelis skirtumas, ty plojimas, mikrovaldiklis siunčia signalą į relę. Relė įsijungia ir lemputė įsijungia. Plojant antrą kartą, lemputė vėl užges.
Prekės
Fiziniai dalykai:
- 1x „ATmega328P Xplained Mini“su kabeliu programavimui
- 1x 5 V relės modulis 1 kanalas (KY-019 arba panašus)
- 1x garso jutiklio modulis (KY-038 ar panašus)
- 1x duonos lenta
- 6x vyriškas-vyriškas trumpiklis
- 1x šviesos lizdas su laidu (arba bet kuris kitas prietaisas, kurį norite įjungti)
- 1x lemputė
- 1x rezistorius* (naudoju 220 omų)
- 1x LED*
Programinė įranga (atsisiųsti):
- „AtmelStudio 7.0“(https://www.microchip.com/mplab/avr-support/atmel-studio-7)
- Glaistas (www.putty.org)*
* Bandymo tikslais
1 žingsnis: jungtys
Prijunkite visus laidus, kaip parodyta paveikslėlyje.
2 žingsnis: programos sukūrimas
Man patinka koduoti C, todėl šis projektas parašytas C.
Jei dar neatsisiuntėte ir neįdiegėte reikiamos programinės įrangos, atsisiųskite ir įdiekite ją dabar.
Dabar atlikite šiuos veiksmus:
- Atidarykite „AtmelStudio“.
- Spustelėkite „Failas“-> „Naujas“-> „Projektas“.
- Spustelėkite „GCC C vykdomąjį projektą“. Suteikite savo projektui pavadinimą ir vietą, kurią norite saugoti. Spustelėkite „Gerai“.
- Ieškokite ATmega328P. Spustelėkite „ATmega328P“-> „Gerai“.
- Spustelėkite Sprendimų naršyklę „main.c“, kad atidarytumėte pagrindinę programą.
3 žingsnis: kodo pridėjimas
Ištrinkite kodą, jau esantį main.c
Nukopijuokite ir įklijuokite šį kodą į main.c
#define F_CPU 16000000
#include #include #include #include "usart.h" #define MINIMALVALUE 5 void InitADC (); uint16_t ReadADC (uint8_t ADCchannel); dvigubas val1, val2; int main (void) {// Inicijuokite USART USART_init (9600); USART_putstr ("#USART init / n"); // Inicijuoti ADC InitADC (); USART_putstr ("#ADC init / n"); // PORTC išvesties PC1 kaištis, likusi įvestis. DDRC = 0b00000010; // nustatyti pradines vertes kaip PORTC low. PORTC = 0b00000000; while (1) {// skaitymo potenciometro reikšmė // skaityti reikšmę ir saugoti val1 val1 = ReadADC (0); _delay_ms (1); // skaityti kitą reikšmę en store in val2 val2 = ReadADC (0); char str [10]; // ReadADC () grąžina vertę sveikais skaičiais. Jei norime derinti arba pamatyti glaisto reikšmę, // reikšmę reikia konvertuoti į simbolius, kad USART galėtų ją atspausdinti. itoa (val1, str, 10); USART_putstr (str); USART_putstr ("\ n"); // jei 2 reikšmės turi tam tikrą skirtumą. Aptiktas garsas ir perjungiamas prievadas. // MINIMALVALUE galima pakeisti, padidinus, jis bus mažiau jautrus. Sumažinus, jis taps jautresnis, jei (val1-val2> MINIMALVALUE || val2-val1> MINIMALVALUE) {PORTC ^= 0b00000010; // LIGHT ON UC _delay_ms (200); }}} void InitADC () {// Pasirinkite Vref = AVcc ADMUX | = (1 << REFS0); // nustatykite prescaller į 128 ir įgalinkite ADC ADCSRA | = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0) | (1 << ADEN); } uint16_t ReadADC (uint8_t ADCchannel) {// pasirinkite ADC kanalą su apsaugine kauke ADMUX = (ADMUX & 0xF0) | (ADCchannel & 0x0F); // vieno konvertavimo režimas ADCSRA | = (1 << ADSC); // palaukti, kol ADC konvertavimas bus baigtas, o (ADCSRA & (1 << ADSC)); grąžinti ADC; }
4 veiksmas: pridėkite USART
USART yra nuoseklaus ryšio protokolas, kurį galima naudoti mikrovaldiklyje. Aš naudoju jį mikrovaldiklyje, kad matyčiau jutiklio analoginius duomenis.
USART jau yra teisingai užprogramuotas, jame yra antraštės (.h) ir šaltinio (.c) failas. Atsisiųskite 2 failus ir pridėkite juos prie savo programos „AtmelStudio“.
Sprendimų naršyklėje dešiniuoju pelės mygtuku spustelėkite projekto pavadinimą. Spustelėkite „Pridėti“-> „Esamas elementas…“ir pasirinkite 2 atsisiųstus failus.
5 žingsnis: paleiskite kodą
Prijunkite mikrovaldiklį prie kompiuterio. Kompiuteryje ieškokite „Device Manager“ir atidarykite. Ieškokite „Uostai (COM ir LPT)“ir prisiminkite, koks COM prievadas yra įjungtas.
Atidarykite „PuTTY“ir spustelėkite „Serial“, įveskite mikrovaldiklio COM prievadą ir spustelėkite „Open“. Pasirodo terminalas, palikite jį kol kas.
Grįžkite į „AtmelStudio“ir pasirinkite tinkamą mikrovaldiklio programavimo įrankį.
- Spustelėkite plaktuko įrankį.
- Pasirinkite „mEDBG*ATML“derintuvą/programuotoją.
- Pasirinkite sąsają „debugWIRE“.
- Spustelėkite „pradėti be derinimo“.
Programa bus sukurta ir parašyta.
Kai programa veikia teisingai, matysite sveiko skaičiaus reikšmes puTTY. Naudodamas atsuktuvą, aš galiu pakeisti vertę, matomą puTTY, sukdamas jutiklio varžtą. Mano jutiklis duoda vertes nuo 0 iki 1000, kai sukamas varžtas iki galo. Aš pasuku varžtą iki 100 (10%) visos vertės. Aš sužinojau, kad tai man tinka.
6 žingsnis: pakeiskite jautrumą
Norėdami reguliuoti jautrumą įjungus šviesą, galite naudoti 2 parinktis, bet pasirinkti vieną, o ne abu:
- Keisti jutiklio varžtą;
- Pakeiskite kodo vertę.
Aš naudoju 2 variantą. Padidinus MINIMALVALUE, jis tampa mažiau jautrus, o sumažinus - jautresnis.
#define MINIMALVALUE 5
7 žingsnis: pakeiskite viską, kas jums patinka
ĮSPĖJIMAS: Būkite atsargūs, kai perjungiate aukštesnę įtampą
Kai esate patenkinti jutiklio jautrumu, galite pakeisti grandinę. Pakeiskite grandinę, kaip parodyta aukščiau. Dabar galite pakeisti viską, kas jums patinka!
Rekomenduojamas:
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su nuotraukomis): 6 žingsniai
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su paveikslėliais): norite Helovino metu išgąsdinti savo draugus ir sukelti riksmą? O gal tiesiog norite padaryti gerą išdaigą? Šis iššokantis „Zombies“ekranas gali tai padaryti! Šioje instrukcijoje aš išmokysiu jus, kaip lengvai padaryti iššokančius zombius naudojant „Arduino“. HC-SR0
„Clap-Off“liemenėlė: 27 žingsniai (su nuotraukomis)
„Clap-Off“liemenėlė: Pirmą kartą perskaičiusi apie Sirijos apatinį trikotažą buvau gana sujaudinta. Vakaruose mes dažnai galvojame apie arabų kultūras kaip apie seksualiai represuotas visuomenes, nors iš tikrųjų paaiškėja, kad jos akivaizdžiai yra šuoliai prieš mus tobulinant apatinį trikotažą
Varžtas - „pasidaryk pats“belaidis įkrovimo naktinis laikrodis (6 žingsniai): 6 žingsniai (su nuotraukomis)
Varžtas - „Pasidaryk pats“belaidis įkrovimo naktinis laikrodis (6 žingsniai): Indukcinis įkrovimas (taip pat žinomas kaip belaidis įkrovimas arba belaidis įkrovimas) yra belaidžio energijos perdavimo tipas. Jis naudoja elektromagnetinę indukciją tiekti elektros energiją nešiojamiesiems įrenginiams. Dažniausia programa yra „Qi“belaidžio įkrovimo st
Dvi „Clap ON“- „Clap OFF“grandinės - 555 IC - 4017 IC: 3 žingsniai
Dvi „Clap ON“- „Clap OFF“grandinės - 555 IC | 4017 IC: Clap ON - Clap OFF grandinė yra grandinė, kuri gali būti naudojama įvairiai elektroninei įrangai valdyti tik CLAP. Vienas plojimas įjungia apkrovą, o kitas - išjungia. Labai paprasta ir paprasta padaryti šią grandinę naudojant IC 4017, bet čia
Pasidaryk pats -- „Clap“automatinis elektrinis automobilis -- Be „Arduino“: 3 žingsniai
Pasidaryk pats || „Clap“automatinis elektromobilis || Be „Arduino“: čia aš jums parodysiu, kaip padaryti „Clap“valdomą automobilį nenaudojant „Arduino“, bet naudojant IC 4017. Tai automobilis, kurio judėjimą pirmyn ir atgal galima valdyti plojimu. Šis projektas pagrįstas „Clap ON“- „Clap OFF“grandinė, kuri pateikiama