- Potreben material
- Delovanje zvočnega senzorja
- Shema vezja zvočnega senzorja
- Glasbeni vodni vodovodni diagram
- Programiranje Arduino Nano za Plesni vodnjak
Obstaja več vodnjakov, ki vodo brezpogojno poškropijo z nekaj zanimivimi svetlobnimi učinki. Tako sem se potepal pri oblikovanju inovativne vodnjake, ki se lahko odziva na zunanjo glasbo in škropi vodo, odvisno od glasbenih utripov. Ali ni slišati zanimivo?
Osnovna ideja tega vodnega vira Arduino je vhod iz katerega koli zunanjega vira zvoka, kot je mobilni telefon, iPod, računalnik itd., Vzorčenje zvoka in njegovo razčlenitev na različna napetostna območja, nato pa z izhodom vklopite različne releje. Najprej smo uporabili modul zvočnega senzorja na osnovi kondenzatorskega mikrofona, da smo na viru zvoka razdelili zvoke v različne napetostne razpone. Nato se napetost napaja na op-amp, da primerja raven zvoka z določeno mejo. Višje napetostno območje bo ustrezalo relejskem stikalu ON, ki vsebuje glasbeni vodnjak, ki deluje na takte in ritme pesmi. Torej tukaj gradimo ta glasbeni vodnjak z uporabo Arduina in zvočnega senzorja.
Potreben material
- Arduino Nano
- Modul zvočnega senzorja
- Relejni modul 12V
- DC črpalka
- LED
- Priključne žice
- Vero deska ali Breadboard
Delovanje zvočnega senzorja
Modul zvočnega senzorja je preprosta elektronska plošča na osnovi električnega mikrofona, ki se uporablja za zaznavanje zunanjega zvoka iz okolja. Temelji na ojačevalniku moči LM393 in električnem mikrofonu, z njim lahko zaznamo, ali je kakšen zvok presegel nastavljeno mejno vrednost. Izhod modula je digitalni signal, ki označuje, da je zvok večji ali manjši od praga.
Potenciometer lahko uporabite za nastavitev občutljivosti modula senzorja. Izhod modula je HIGH / LOW, če je vir zvoka nižji / višji od praga, ki ga nastavi potenciometer. Isti modul zvočnega senzorja lahko uporabimo tudi za merjenje ravni zvoka v decibelih.
Shema vezja zvočnega senzorja
Kot vemo, je v modulu zvočnega senzorja osnovna vhodna naprava mikrofon, ki zvočne signale pretvori v električne. Ker pa je izhod električnega signala zvočnega senzorja tako majhen, da ga je zelo težko analizirati, smo uporabili tranzistorski ojačevalnik NPN, ki ga bo ojačal in napajal izhodni signal na neinvertirajoči vhod Op- amp. Tu se LM393 OPAMP uporablja kot primerjalnik, ki primerja električni signal iz mikrofona in referenčni signal, ki prihaja iz vezja delilnika napetosti. Če je vhodni signal večji od referenčnega, bo izhod OPAMP-a visok in obratno.
Če želite izvedeti več o njegovem delovanju, lahko sledite odsekom vezij Op-amp.
Glasbeni vodni vodovodni diagram
Kot je prikazano v zgornjem diagramu vezja glasbene fontane, se zvočni senzor napaja z 3,3 V napajalnikom Arduino Nano, izhodni zatič modula zvočnega senzorja pa je povezan z analognim vhodnim zatičem (A6) Nano. Uporabite lahko katerega koli analognega zatiča, vendar ga obvezno spremenite v programu. Relejni modul in enosmerno črpalko napaja zunanji napajalnik 12VDC, kot je prikazano na sliki. Vhodni signal relejnega modula je povezan z digitalnim izhodnim zatičem D10 Nano. Za svetlobni učinek sem izbral dve različni barvi LED in ju povezal z dvema digitalnima izhodnima nožicama (D12, D11) Nano.
Tu je črpalka priključena tako, da se, ko se na vhod modula releja dodeli VISOK impulz, priklopi COM kontakt releja na kontakt NO in tok dobi zaprti krog, ki teče čez črpalko do aktivirajte pretok vode. V nasprotnem primeru bo črpalka ostala IZKLOPLJENA. HIGH / LOW impulzi se generirajo iz Arduino Nano, odvisno od vhoda zvoka.
Po spajkanju celotnega vezja na ploščo bo videti spodaj:
Tu smo uporabili plastično škatlo kot posodo za fontano in mini 5v črpalko, ki je delovala kot vodnjak, to črpalko pa smo prej uporabljali pri gasilskem robotu:
Programiranje Arduino Nano za Plesni vodnjak
Celoten program tega projekta vodne fontane Arduino je podan na dnu strani. Ampak tukaj to samo razlagam po delih za boljše razumevanje:
Prvi del programa je razglasiti potrebne spremenljivke za dodelitev številk pinov, ki jih bomo uporabili v naslednjih blokih programa. Nato določite konstanto REF z vrednostjo, ki je referenčna vrednost modula zvočnega senzorja. Dodeljena vrednost 700 je bajtna ekvivalentna vrednost izhodnega električnega signala zvočnega senzorja.
int senzor = A6; int rdeče = 12; int ozelenjeno = 11; int črpalka = 10; #define REF 700
V funkciji void setup smo s pomočjo funkcije pinMode dodelili smer INPUT / OUTPUT podatkov zatičev. Tu je senzor vzet kot VHOD, vse druge naprave pa kot IZHOD.
void setup () { pinMode (senzor, INPUT); pinMode (rdeče, IZHOD); pinMode (zeleno, IZHOD); pinMode (črpalka, IZHOD); }
Znotraj neskončne zanke se pokliče funkcija analogRead , ki odčita analogno vrednost, vneseno s senzorskega zatiča, in jo shrani v spremenljivo senzor_value .
int sensor_value = analogRead (senzor);
V zadnjem delu se zanka if-else uporablja za primerjavo vhodnega analognega signala z referenčno vrednostjo. Če je večji od referenčnega, potem dobijo vsi izhodni zatiči VISOK izhod, tako da se vključijo vse LED in črpalka, sicer pa vse ostane IZKLOPLJENO. Tu smo podali tudi zamik 70 milisekund, da ločimo čas vklopa / izklopa releja.
če (vrednost_senzorja> REF) { digitalWrite (zeleno, VISOKO); digitalWrite (rdeče, VISOKO); digitalWrite (črpalka, VISOKO); zamuda (70); } else { digitalWrite (zeleno, LOW); digitalWrite (rdeče, NIZKO); digitalWrite (črpalka, LOW); zamuda (70); }
Tako deluje ta vodnjak z nadzorom Arduino, spodaj je navedena celotna koda z delujočim videom.