- Potrebný materiál
- Funguje zvukový senzor
- Schéma zapojenia zvukového senzora
- Schéma zapojenia vodnej fontány
- Programovanie Arduino Nano pre Dancing Fountain
Existuje niekoľko vodných fontán, ktoré bezpodmienečne kropia vodu zaujímavými svetelnými efektmi. Túlal som sa teda po dizajne inovatívnej vodnej fontány, ktorá dokáže reagovať na vonkajšiu hudbu a kropiť ju vodou v závislosti od rytmu hudby. Neznie to zaujímavo?
Základnou myšlienkou tejto vodnej fontány Arduino je vstup z ľubovoľného externého zdroja zvuku, ako je mobil, iPod, PC atď., Vzorkovanie zvuku a jeho rozdelenie na rôzne rozsahy napätia. Potom pomocou výstupu zapnite rôzne relé. Najprv sme použili modul zvukového senzora založený na kondenzátorovom mikrofóne, aby sme na zdroji zvuku rozdelili zvuky do rôznych napäťových rozsahov. Potom sa napätie privedie do operačného zosilňovača na porovnanie úrovne zvuku s konkrétnym limitom. Rozsah vyššieho napätia bude zodpovedať prepínaču ON, ktorý obsahuje hudobnú vodnú fontánu fungujúcu podľa rytmov a rytmov piesne. Takže tu budujeme túto hudobnú fontánu pomocou Arduina a zvukového senzora.
Potrebný materiál
- Arduino Nano
- Modul zvukového senzora
- 12V reléový modul
- DC čerpadlo
- LED diódy
- Pripojovacie vodiče
- Vero doska alebo nepájivá doska
Funguje zvukový senzor
Modul zvukového senzora je jednoduchá elektretová mikrofónna elektronická doska používaná na snímanie externého zvuku z prostredia. Je založený na výkonovom zosilňovači LM393 a elektretovom mikrofóne, dá sa pomocou neho zistiť, či je nejaký zvuk nad nastavenou hraničnou hodnotou. Výstupom modulu je digitálny signál, ktorý naznačuje, že zvuk je väčší alebo menší ako prahová hodnota.
Potenciometer je možné použiť na nastavenie citlivosti modulu snímača. Výstup modulu je HIGH / LOW, keď je zdroj zvuku nižší / vyšší ako prahová hodnota nastavená potenciometrom. Rovnaký modul zvukového senzora je možné použiť aj na meranie úrovne zvuku v decibeloch.
Schéma zapojenia zvukového senzora
Ako vieme, v module zvukového senzora je základným vstupným zariadením mikrofón, ktorý prevádza zvukové signály na elektrické signály. Ale pretože výstup elektrického signálu zvukového senzora je taký malý, čo je veľmi ťažké analyzovať, použili sme tranzistorový zosilňovací obvod NPN, ktorý ho zosilní a privádza výstupný signál na neinvertujúci vstup Op- amp. Tu sa LM393 OPAMP používa ako komparátor, ktorý porovnáva elektrický signál z mikrofónu a referenčný signál prichádzajúci z obvodu deliča napätia. Ak je vstupný signál väčší ako referenčný signál, bude výstup OPAMP vysoký a naopak.
Môžete postupovať podľa sekcií obvodov operačného zosilňovača a dozvedieť sa viac o jeho práci.
Schéma zapojenia vodnej fontány
Ako je znázornené na vyššie uvedenej schéme zapojenia hudobnej fontány, zvukový senzor je napájaný napájaním 3,3 V pre Arduino Nano a výstupný kolík modulu zvukového senzora je pripojený k analógovému vstupnému kolíku (A6) Nano. Môžete použiť ktorýkoľvek z analógových pinov, ale nezabudnite to zmeniť v programe. Reléový modul a jednosmerné čerpadlo sú napájané z externého zdroja 12VDC, ako je to znázornené na obrázku. Vstupný signál reléového modulu je pripojený k digitálnemu výstupnému kolíku D10 Nano. Pre svetelný efekt som vybral dve rôzne farby LED diód a pripojil ich k dvom digitálnym výstupným pinom (D12, D11) Nano.
Tu je čerpadlo pripojené takým spôsobom, že keď je na vstup reléového modulu privádzaný VYSOKÝ impulz, kontakt COM relé je pripojený k spínaciemu kontaktu a prúd dostane cestu uzavretého obvodu, ktorá prúdi cez čerpadlo do aktivujte prietok vody. V opačnom prípade zostane čerpadlo vypnuté. HIGH / LOW impulzy sú generované z Arduino Nano v závislosti od zvukového vstupu.
Po pripájaní celého obvodu na perfboard to bude vyzerať nasledovne:
Tu sme použili plastovú skrinku ako fontánový kontajner a mini 5V čerpadlo, ktoré fungovalo ako fontána, toto čerpadlo sme predtým používali v hasičskom robote:
Programovanie Arduino Nano pre Dancing Fountain
Kompletný program tohto projektu vodnej fontány Arduino je uvedený v spodnej časti stránky. Ale tu to iba vysvetľujem po častiach pre lepšie pochopenie:
Prvá časť programu je deklarovať potrebné premenné na priraďovanie čísel pinov, ktoré budeme používať v ďalších blokoch programu. Potom definujte konštantný REF s hodnotou, ktorá je referenčnou hodnotou pre modul zvukového senzora. Priradená hodnota 700 je ekvivalentná hodnota bajtov výstupného elektrického signálu zvukového senzora.
int senzor = A6; int červeno = 12; int greenled = 11; int čerpadlo = 10; #define REF 700
Vo funkcii nastavenia void sme použili funkciu pinMode na priradenie smeru dát VSTUPU / VÝSTUPU kolíkov. Tu sa senzor považuje za VSTUP a všetky ostatné zariadenia sa používajú ako VÝSTUP.
void setup () { pinMode (senzor, VSTUP); pinMode (červený, VÝSTUP); pinMode (zelený, OUTPUT); pinMode (čerpadlo, VÝSTUP); }
Vo vnútri nekonečnej slučky sa volá funkcia analogRead , ktorá odčíta vstupnú analógovú hodnotu z kolíka senzora a uloží ju do premennej sensor_value .
int sensor_value = analogRead (senzor);
V záverečnej časti sa na porovnanie vstupného analógového signálu s referenčnou hodnotou použije slučka typu „ if-else“ . Ak je väčší ako referenčný, potom majú všetky výstupné piny VYSOKÝ výstup, takže sú aktivované všetky LED a čerpadlo, inak všetko zostane VYPNUTÉ. Tu sme tiež dali oneskorenie 70 milisekúnd, aby sme rozlíšili čas ZAPNUTIA / VYPNUTIA relé.
if (sensor_value> REF) { digitalWrite (greenled, HIGH); digitalWrite (červený, HIGH); digitalWrite (pumpa, VYSOKÁ); oneskorenie (70); } else { digitalWrite (zeleno, NÍZKY); digitalWrite (červený, nízky); digitalWrite (pumpa, NÍZKA); oneskorenie (70); }
Takto funguje táto vodná fontána ovládaná Arduino, kompletný kód s pracovným videom je uvedený nižšie.