- Anyag szükséges
- Hangérzékelő működése
- Hangérzékelő áramkör diagram
- Zenés szökőkút áramköri ábra
- Az Arduino Nano programozása a táncoló szökőkúthoz
Számos szökőkút létezik, amelyek feltétel nélkül szórják a vizet érdekes fényhatásokkal. Tehát egy innovatív szökőkút megtervezésén jártam, amely képes reagálni a külső zenére és a zene ütemétől függően vizet szórni. Nem érdekesnek hangzik?
Ennek az Arduino szökőkútnak az az alapötlete, hogy bármilyen külső hangforrásból, például mobilból, iPod-ból, PC-ből, bemenetet vegyen, mintát vegyen a hangról, és különböző feszültségtartományokra bontsa, majd használja a kimenetet a különböző relék bekapcsolására. Először kondenzátoros mikrofon alapú hangérzékelő modult alkalmaztunk a hangforráson, hogy a hangokat különböző feszültségtartományokra bontsuk. Ezután a feszültséget az op-amp-ba táplálják, hogy összehasonlítsák a hangszintet egy adott határértékkel. A magasabb feszültségtartomány egy relés kapcsolónak felel meg, amely egy zenés szökőkutat tartalmaz, amely a dal ütemére és ritmusára működik. Tehát itt építjük ezt a zenei szökőkutat Arduino és hangérzékelő segítségével.
Anyag szükséges
- Arduino Nano
- Hangérzékelő modul
- 12V relé modul
- DC szivattyú
- LED-ek
- Csatlakozó vezetékek
- Vero tábla vagy kenyérlap
Hangérzékelő működése
A hangérzékelő modul egy egyszerű elektret mikrofon alapú elektronikus kártya, amelyet a környezetből származó külső hang érzékelésére használnak. Az LM393 teljesítményerősítőn és az elektret mikrofonon alapul, fel lehet használni annak megállapítására, hogy a beállított küszöbhatáron túl van-e hang. A modul kimenete digitális jel, amely jelzi, hogy a hang nagyobb vagy kisebb, mint a küszöb.
A potenciométer az érzékelő modul érzékenységének beállítására használható. A modul kimenete HIGH / LOW, ha a hangforrás alacsonyabb / magasabb, mint a potenciométer által beállított küszöb. Ugyanaz a hangérzékelő modul használható a zajszint decibelben történő mérésére is.
Hangérzékelő áramkör diagram
Mint tudjuk, hogy egy hangérzékelő modulban az alapvető bemeneti eszköz az a mikrofon, amely a hangjeleket elektromos jelekké alakítja. De mivel a hangérzékelő elektromos jelkimenete olyan kicsi, amit nagyon nehéz elemezni, ezért NPN tranzisztoros erősítő áramkört használtunk, amely fel fogja erősíteni és a kimeneti jelet az Op nem invertáló bemenetére táplálja. erősítő Itt az LM393 OPAMP-t használják összehasonlító eszközként, amely összehasonlítja a mikrofon elektromos jelét és a feszültségosztó áramkörből érkező referencia jelet. Ha a bemeneti jel nagyobb, mint a referenciajel, akkor az OPAMP kimenete magas lesz és fordítva.
Kövesse az Op-amp áramkörök szakaszait, hogy többet tudjon meg a működéséről.
Zenés szökőkút áramköri ábra
Amint a fenti zenei szökőkút kapcsolási rajzon látható, a hangérzékelőt 3,3 V-os Arduino Nano tápellátással látják el, és a hangérzékelő modul kimeneti csatlakozója a Nano analóg bemeneti tűjéhez (A6) csatlakozik. Bármelyik analóg tűt használhatja, de mindenképpen változtassa meg ezt a programban. A relé modult és az egyenáramú szivattyút egy külső 12 VDC tápegység táplálja, az ábra szerint. A relé modul bemeneti jele a Nano digitális D10 kimeneti csatlakozójához van csatlakoztatva. A fényhatáshoz a LED két különböző színét választottam, és két Nano digitális kimeneti csatlakozóhoz (D12, D11) csatlakoztattam őket.
Itt a szivattyú úgy van csatlakoztatva, hogy amikor a relé modul bemenetére HIGH impulzust adunk, akkor a relé COM érintkezője a NO érintkezőhöz kapcsolódik, és az áram zárt áramkört kap, amely a szivattyún át áramlik aktiválja a víz áramlását. Ellenkező esetben a szivattyú KI állapotban marad. A HIGH / LOW impulzusokat az Arduino Nano generálja a hang bemenetétől függően.
Miután a teljes áramkört forrasztotta a perfboardra, az alábbiak szerint fog kinézni:
Itt egy műanyag dobozt használtunk szökőkút-tartályként és egy mini 5v-os szivattyút szökőkútként, ezt a szivattyút korábban tűzoltó robotban használtuk:
Az Arduino Nano programozása a táncoló szökőkúthoz
Az Arduino szökőkút projekt teljes programja az oldal alján található. De itt csak azt magyarázom, hogy a jobb megértés érdekében:
A program első része deklarálja a szükséges változókat a PIN-kódok hozzárendeléséhez, amelyeket a következő programblokkokban fogunk használni. Ezután adjon meg egy állandó REF értéket, amelynek értéke a hangérzékelő modul referenciaértéke. A hozzárendelt 700 érték a hangérzékelő kimeneti elektromos jelének bájtokkal egyenértékű értéke.
int érzékelő = A6; int vöröses = 12; int zöldes = 11; int szivattyú = 10; #define REF 700
A void setup funkcióban a pinMode funkciót használtuk a csapok INPUT / OUTPUT adatirányának hozzárendeléséhez. Itt az érzékelőt INPUT-nak vesszük, az összes többi eszközt pedig OUTPUT-nak.
void setup () { pinMode (érzékelő, INPUT); pinMode (pirosított, OUTPUT); pinMode (zöld, OUTPUT); pinMode (szivattyú, OUTPUT); }
Bent a végtelen hurok , analogRead funkciót nevezik, amely leolvasott adat az analóg érték bemenet az érzékelő csap és eltárolja egy változó sensor_value .
int érzékelő_érték = analóg olvasás (érzékelő);
Az utolsó részben egy if-else ciklust használnak az analóg bemeneti jel és a referenciaérték összehasonlítására. Ha ez nagyobb, mint a referencia, akkor az összes kimeneti tüskének HIGH kimenetet kapunk, így az összes LED és szivattyú aktiválódik, különben minden KI marad. Itt adtunk 70 milliszekundumos késleltetést is a relé BE / KI idejének megkülönböztetéséhez.
if (érzékelő_érték> REF) { digitalWrite (zöld, HIGH); digitalWrite (pirosított, HIGH); digitalWrite (szivattyú, HIGH); késés (70); } else { digitalWrite (zöld, LOW); digitalWrite (vörös, LOW); digitalWrite (szivattyú, LOW); késés (70); }
Így működik ez az Arduino által vezérelt Szökőkút, a teljes kódot egy működő videóval az alábbiakban adjuk meg.