Šiame projekte mes ketiname sukurti „ Clapper“ grandinę naudodami „ADC“ („Analog to Digital Conversion“) koncepciją ARDUINO UNO. Norėdami pajusti garsą ir sukelti atsaką, naudosime MIC ir „Uno“. Šis „ Clap ON“ „Clap OFF“ jungiklis iš esmės įjungia arba išjungia įrenginį, naudodamas „clap“ garsą. Anksčiau mes sukūrėme „Clap“ jungiklį ir „Clap ON“ „Clap OFF“ jungiklį, naudodami „555 Timer IC“.
Paspaudus, prie MIC atsiras smailės signalas, kuris yra daug didesnis nei įprasta, šis signalas tiekiamas į stiprintuvą, nors ir aukšto dažnio filtrą. Šis sustiprintas įtampos signalas tiekiamas ADC, kuris šią aukštą įtampą paverčia skaičiumi. Taigi JT ADC skaitymo metu bus pasiektas pikas. Šioje smailės aptikimo lentoje, kiekviename plojime, įjungsime šviesos diodą. Šis projektas buvo išsamiai paaiškintas toliau.
MIC arba mikrofonas yra garso jutiklis, kuris iš esmės konvertuoja garso energiją į elektros energiją, todėl naudodami šį jutiklį garsas keičiasi kaip įtampa. Paprastai įrašome arba nujaučiame garsą per šį įrenginį. Šis keitiklis naudojamas visuose mobiliuosiuose telefonuose ir nešiojamuosiuose kompiuteriuose. Tipiškas MIC atrodo kaip
Kondensatoriaus mikrofono poliškumo nustatymas:
MIC turi du gnybtus, vienas yra teigiamas, kitas - neigiamas. Mikrofono poliškumą galima rasti naudojant daugiametrį prietaisą. Paimkite teigiamą „Multi-Meter“ zondą (nustatykite matuoklį į „DIODE TESTING“ režimą) ir prijunkite jį prie vieno MIC, o neigiamą - prie kito „MIC“. Jei rodmenys rodomi ekrane, teigiamo (MIC) gnybtas yra neigiamame daugiametro gale. Arba galite tiesiog rasti gnybtus, žiūrėdami į jį, neigiamame gnybte yra dvi ar trys litavimo linijos, sujungtos su metaliniu mikrofono korpusu. Šį ryšį nuo neigiamo gnybto iki metalinio korpuso taip pat galima išbandyti naudojant tęstinumo tikrintuvą, kad sužinotumėte neigiamą gnybtą.
Būtini komponentai:
Techninė įranga:
ARDUINO UNO, maitinimo šaltinis (5v), kondensatoriaus mikrofonas (paaiškinta aukščiau)
2N3904 NPN tranzistorius,
100nF kondensatoriai (2 vnt.), Vienas 100uF kondensatorius,
1K Ω rezistorius, 1MΩ rezistorius, 15KΩ rezistorius (2 vnt.), Vienas šviesos diodas,
Breadboard & Connecting laidai.
Programinė įranga: „ Arduino IDE“ - naktinis „Arduino“.
Grandinės schema ir darbo paaiškinimas:
Grandinės diagrama plojikas grandinės yra parodyta žemiau paveiksle:
Darbą suskirstėme į keturias dalis, ty filtravimą, stiprinimą, analoginio ir skaitmeninio keitimą ir programavimą, kad perjungtumėte šviesos diodą
Kai tik yra garsas, MIC jį paima ir paverčia įtampa, tiesine pagal garso dydį. Taigi aukštesniam garsui mes turime didesnę vertę, o žemesniam - mažesnę vertę. Ši vertė pirmiausia perduodama į aukšto dažnio filtrą filtravimui. Tada ši filtruota vertė tiekiama į tranzistorių stiprinimui, o tranzistorius suteikia sustiprintą išėjimą kolektoriuje. Šis kolektoriaus signalas tiekiamas į UNO ADC0 kanalą, kad būtų galima konvertuoti iš analoginio į skaitmeninį. Galiausiai „Arduino“ yra užprogramuotas perjungti šviesos diodą, prijungtą prie PORTD 7 PIN kodo, kiekvieną kartą, kai ADC kanalas A0 peržengia tam tikrą lygį.
1. Filtravimas:
Pirmiausia trumpai pakalbėsime apie RC aukšto dažnio filtrą, kuris buvo naudojamas triukšmams filtruoti. Tai lengva suprojektuoti ir susideda iš vieno rezistoriaus ir vieno kondensatoriaus. Šiai grandinei mums nereikia daug detalių, todėl paliksime tai paprastą. Aukšto dažnio filtras leidžia perduoti aukšto dažnio signalus iš įėjimo į išvestį, kitaip tariant, įvesties signalas pasirodo išėjime, jei signalo dažnis yra didesnis už nustatytą filtro dažnį. Kol kas nereikia jaudintis dėl šių verčių, nes čia mes nesukuriame garso stiprintuvo. Grandinėje rodomas aukšto dažnio filtras.
Po šio filtro įtampos signalas tiekiamas į tranzistorių stiprinimui.
2. Stiprinimas:
MIC įtampa yra labai maža ir jos negalima tiekti į UNO, skirtą ADC (analoginės į skaitmeninę konversiją), todėl tam suprojektuojame paprastą stiprintuvą, naudodamiesi tranzistoriumi. Čia sukūrėme vieną tranzistoriaus stiprintuvą, skirtą MIC įtampoms stiprinti. Šis sustiprintas įtampos signalas toliau tiekiamas į „Arduino“ ADC0 kanalą.
3. Analoginė - skaitmeninė konversija
ARDUINO turi 6 ADC kanalus. Bet kuris iš jų arba visi iš jų gali būti naudojami kaip analoginės įtampos įėjimai. UNO ADC skiriamoji geba yra 10 bitų (taigi sveikųjų skaičių reikšmės nuo (0- (2 ^ 10) 1023)). Tai reiškia, kad jis įves 0–5 voltų įvesties įtampas į sveikas skaičius nuo 0 iki 1023. Taigi kiekvienam (5/1024 = 4,9 mV) vienetui.
Dabar, kad UNO galėtų konvertuoti analoginį signalą į skaitmeninį signalą, turime naudoti ARDUINO UNO ADC kanalą, naudodamiesi žemiau pateiktomis funkcijomis:
1. analoginis skaitymas (kaištis); 2. analoginė nuoroda ();
UNO ADC kanalų turėti numatytąjį pamatinę vertę 5V. Tai reiškia, kad ADC konversijai bet kuriame įėjimo kanale galime suteikti maksimalią įėjimo įtampą 5 V. Kadangi kai kurie jutikliai teikia 0–2,5 V įtampą, todėl naudojant 5 V atskaitos tašką gauname mažesnį tikslumą, todėl turime instrukciją, leidžiančią pakeisti šią atskaitos vertę. Taigi norėdami pakeisti pamatinę vertę turime „analogReference ();“
Šioje grandinėje šią atskaitos įtampą palikome numatytajai, kad galėtume nuskaityti vertę iš ADC kanalo 0, tiesiogiai iškviesdami funkciją „analogRead (pin);“, čia „kaištis“ reiškia kaištį, kuriame prijungėme analoginį signalą, šiuo atveju tai būtų „A0“. Vertę iš ADC galima paimti į sveiką skaičių kaip „int sensorValue = analogRead (A0); “, Pagal šią instrukciją vertė iš ADC įrašoma į sveikąjį skaičių„ sensorValue “. Dabar mes turime tranzistoriaus vertę skaitmenine forma, UNO atmintyje.
4. Užprogramuokite „Arduino“ perjungti kiekvieno „Clap“ šviesos diodą:
Įprastais atvejais MIC teikia normalius signalus, todėl UNO turime normalias skaitmenines vertes, tačiau ploję ten MIC teikiamą smailę, turėdami didžiausią skaitmeninę vertę UNO, galime užprogramuoti UNO perjungti šviesos diodas įjungtas ir išjungtas, kai yra pikas. Taigi pirmą kartą plojus šviesos diodas įsijungia ir lieka įjungtas. Antrą kartą plojus šviesos diodas išsijungia ir lieka išjungtas iki kito plojimo. Tokiu būdu mes turime klaperio grandinę. Patikrinkite programos kodą žemiau.