- Reikalinga medžiaga
- Garso jutiklio darbas
- Garso jutiklio grandinės schema
- Muzikinio vandens fontano grandinės schema
- „Arduino Nano“ programavimas šokių fontanui
Yra keletas vandens fontanų, kurie besąlygiškai purškia vandenį įdomiais apšvietimo efektais. Taigi aš klajojau kurdamas novatorišką vandens fontaną, kuris galėtų reaguoti į išorinę muziką ir apšlakstyti vandenį, priklausomai nuo muzikos ritmo. Negi skamba įdomiai?
Pagrindinė šio „ Arduino“ fontano idėja yra paimti įvestį iš bet kurio išorinio garso šaltinio, pvz., Mobiliojo ryšio, „iPod“, asmeninio kompiuterio ir pan., Paimti garsą ir suskirstyti jį į skirtingus įtampos diapazonus, tada naudoti išvestį, kad įjungtumėte įvairią relę. Pirmiausia panaudojome kondensatoriaus mikrofonu pagrįstą garso jutiklio modulį, kad atliktume garso šaltinį, kad garsai būtų padalyti į skirtingus įtampos diapazonus. Tada įtampa bus tiekiama į op-amp, kad būtų galima palyginti garso lygį su tam tikra riba. Aukštesnės įtampos diapazonas atitiks relės jungiklį ĮJUNGTAS, kurį sudaro muzikinis vandens fontanas, veikiantis pagal dainos ritmus ir ritmus. Taigi čia mes statome šį muzikinį fontaną naudodami „Arduino“ ir garso jutiklį.
Reikalinga medžiaga
- „Arduino Nano“
- Garso jutiklio modulis
- 12 V relės modulis
- DC siurblys
- Šviesos diodai
- Jungiamieji laidai
- „Vero“ lenta arba „Breadboard“
Garso jutiklio darbas
Garso jutiklio modulis yra paprasta elektroniniu mikrofonu paremta elektroninė plokštė, naudojama išoriniam aplinkos garsui pajusti. Jis pagrįstas galios stiprintuvu LM393 ir elektreto mikrofonu, jis gali būti naudojamas nustatyti, ar nėra garso, viršijančio nustatytą ribą. Modulio išvestis yra skaitmeninis signalas, rodantis, kad garsas yra didesnis ar mažesnis už slenkstį.
Potenciometru galima reguliuoti jutiklio modulio jautrumą. Modulio išvestis yra HIGH / LOW, kai garso šaltinis yra žemesnis / aukštesnis už potenciometro nustatytą slenkstį. Tas pats garso jutiklio modulis taip pat gali būti naudojamas garso lygiui decibelais matuoti.
Garso jutiklio grandinės schema
Kaip žinome, kad garso jutiklio modulyje pagrindinis įvesties įtaisas yra mikrofonas, kuris garso signalus paverčia elektriniais. Bet kadangi garso jutiklio elektrinis signalo išėjimas yra toks mažas, kurį labai sunku išanalizuoti, mes panaudojome NPN tranzistoriaus stiprintuvo grandinę, kuri ją sustiprins ir išvesties signalą tieks į neinvertuojančią Op stiprintuvas Čia LM393 OPAMP naudojamas kaip palyginamasis elementas, kuris palygina elektrinį signalą iš mikrofono ir etaloninį signalą, gaunamą iš įtampos daliklio grandinės. Jei įvesties signalas yra didesnis už etaloninį signalą, tada OPAMP išvestis bus didelė ir atvirkščiai.
Norėdami sužinoti daugiau apie jo veikimą, galite sekti „Op-amp“ grandinių skyrius.
Muzikinio vandens fontano grandinės schema
Kaip parodyta pirmiau pateiktoje muzikinio fontano schemoje, garso jutiklis maitinamas 3,3 V „Arduino Nano“ maitinimo šaltiniu, o garso jutiklio modulio išvesties kaištis yra prijungtas prie „Nano“ analoginio įvesties kaiščio (A6). Galite naudoti bet kurį analoginį kaištį, tačiau būtinai pakeiskite tai programoje. Relės modulis ir nuolatinės srovės siurblys yra maitinami iš išorinio 12 VDC maitinimo šaltinio, kaip parodyta paveiksle. Relės modulio įvesties signalas yra prijungtas prie „Nano“ skaitmeninio išvesties kaiščio D10. Šviesos efektui pasirinkau dvi skirtingas šviesos diodų spalvas ir sujungiau juos su dviem „Nano“ skaitmeninio išvesties kaiščiais (D12, D11).
Siurblys yra prijungtas taip, kad kai relės modulio įėjimui suteikiamas HIGH impulsas, relės COM kontaktas bus prijungtas prie NO kontakto, o srovė uždaro kontūro taku tekės per siurblį į įjungti vandens srautą. Priešingu atveju siurblys liks išjungtas. HIGH / LOW impulsus generuoja „Arduino Nano“, priklausomai nuo garso įvesties.
Lituojant visą grandinę ant lentos, ji atrodys taip:
Čia mes naudojome plastikinę dėžę kaip fontano talpyklą ir mini 5v siurblį, kad veiktų kaip fontanas, mes anksčiau naudojome šį gaisro gesinimo robotą:
„Arduino Nano“ programavimas šokių fontanui
Visa šio „ Arduino“ fontano projekto programa pateikiama puslapio apačioje. Bet čia aš tai tiesiog paaiškinu dalimis, kad geriau suprasčiau:
Pirmoji programos dalis yra deklaruoti reikiamus kintamuosius PIN kodams priskirti, kuriuos ketiname naudoti kituose programos blokuose. Tada nustatykite pastovią REF vertę, kuri yra garso jutiklio modulio pamatinė vertė. Priskirta reikšmė 700 yra garso jutiklio išvesties elektrinio signalo ekvivalentinė baitų vertė.
int jutiklis = A6; int paraudo = 12; int žaliai = 11; int siurblys = 10; #define REF 700
Be void setup funkcija mes naudojome pinMode funkciją priskirti įvesties / išvesties duomenų kryptį kaiščių. Čia jutiklis laikomas INPUT, o visi kiti įrenginiai naudojami kaip OUTPUT.
void setup () { pinMode (jutiklis, INPUT); pinMode (raudonas, OUTPUT); pinMode (žalias, OUTPUT); pinMode (siurblys, OUTPUT); }
Viduje begalinės kilpos , analogRead funkcija yra vadinama, kuri rodmenų analoginį vertės įvestį iš jutiklio kaiščio ir išsaugo jį kintamojo sensor_value .
int sensor_value = analogRead (jutiklis);
Paskutinėje dalyje naudojama „ if-else“ kilpa, skirta palyginti įvesties analoginį signalą su etalonine verte. Jei jis didesnis už atskaitos tašką, tada visiems išvesties kaiščiams suteikiama HIGH išvestis, kad visi šviesos diodai ir siurblys būtų įjungti, kitaip viskas lieka išjungta. Čia taip pat skyrėme 70 milisekundžių vėlavimą, kad atskirtume relės įjungimo / išjungimo laiką.
if (sensor_value> REF) { digitalWrite (žalia, HIGH); „digitalWrite“ (paraudęs, AUKŠTAS); „digitalWrite“ (siurblys, AUKŠTAS); vėlavimas (70); } else { digitalWrite (žalias, LOW); „digitalWrite“ (raudonas, LOW); digitalWrite (siurblys, LOW); vėlavimas (70); }
Taip veikia šis „ Arduino“ valdomas vandens fontanas, visas kodas su veikiančiu vaizdo įrašu pateikiamas žemiau.