- Material necesar
- Funcționarea unui senzor de sunet
- Diagrama circuitului senzorului de sunet
- Diagrama circuitului fântânii de apă muzicale
- Programare Arduino Nano pentru Fântâna dansatoare
Există mai multe fântâni de apă care stropesc necondiționat apă cu unele efecte de iluminare interesante. Așa că m-am rătăcit despre proiectarea unei fântâni de apă inovatoare care să poată răspunde la muzica externă și să stropească apă în funcție de ritmurile muzicii. Nu sună interesant?
Ideea de bază a acestei fântâni de apă Arduino este de a prelua o intrare de la orice sursă externă de sunet, cum ar fi mobilul, iPod-ul, PC-ul etc. Am folosit mai întâi un modul senzor de sunet bazat pe microfon condensator pentru a efectua sursa de sunet pentru a împărți sunetele în diferite intervale de tensiune. Apoi, tensiunea va fi alimentată la op-amp pentru a compara nivelul de sunet cu o anumită limită. Gama de tensiune mai mare va corespunde unui comutator de releu pornit care cuprinde o fântână muzicală de apă care funcționează la ritmurile și ritmurile melodiei. Deci, aici construim această fântână muzicală folosind Arduino și senzor de sunet.
Material necesar
- Arduino Nano
- Modul senzor sunet
- Modul releu 12V
- Pompa DC
- LED-uri
- Conectarea firelor
- Vero board sau Breadboard
Funcționarea unui senzor de sunet
Modulul senzor de sunet este o placă electronică simplă bazată pe microfon electret, utilizată pentru a simți sunetul extern din mediu. Se bazează pe amplificatorul de putere LM393 și un microfon electret, poate fi folosit pentru a detecta dacă există un sunet dincolo de limita pragului stabilit. Ieșirea modulului este un semnal digital care indică faptul că sunetul este mai mare sau mai mic decât pragul.
Potențiometrul poate fi utilizat pentru a regla sensibilitatea modulului senzor. Ieșirea modulului este HIGH / LOW când sursa de sunet este mai mică / mai mare decât pragul stabilit de potențiometru. Același modul senzor de sunet poate fi utilizat și pentru măsurarea nivelului de sunet în decibeli.
Diagrama circuitului senzorului de sunet
După cum știm că într-un modul senzor de sunet, dispozitivul de bază de intrare este microfonul care convertește semnalele sonore în semnale electrice. Dar, deoarece ieșirea semnalului electric al senzorului de sunet este atât de mică în mărime, încât este foarte dificil de analizat, așa că am folosit un circuit amplificator cu tranzistor NPN care îl va amplifica și va alimenta semnalul de ieșire la intrarea non-inversantă a Op- amplificator Aici LM393 OPAMP este folosit ca un comparator care compară semnalul electric de la microfon și semnalul de referință care vine de la circuitul divizor de tensiune. Dacă semnalul de intrare este mai mare decât semnalul de referință, atunci ieșirea OPAMP va fi ridicată și invers.
Puteți urmări secțiunile circuitelor de amplificator op pentru a afla mai multe despre funcționarea acestuia.
Diagrama circuitului fântânii de apă muzicale
Așa cum se arată în schema de circuit muzicală de mai sus, senzorul de sunet este alimentat cu o sursă de 3,3 V de Arduino Nano, iar pinul de ieșire al modulului senzorului de sunet este conectat la pinul de intrare analogică (A6) al Nano. Puteți utiliza oricare dintre pinii analogici, dar asigurați-vă că schimbați acest lucru în program. Modulul releu și pompa DC sunt alimentate de o sursă de alimentare externă de 12VDC, așa cum se arată în figură. Semnalul de intrare al modulului releu este conectat la pinul de ieșire digital D10 al Nano. Pentru efectul de iluminare, am ales două culori diferite de LED-uri și le-am conectat la doi pini de ieșire digitale (D12, D11) de la Nano.
Aici pompa este conectată în așa fel încât atunci când este dat un impuls HIGH la intrarea modulului releu, contactul COM al releului este conectat la contactul NO și curentul obține o cale de circuit închis care să curgă peste pompă la activați debitul de apă. În caz contrar, pompa va rămâne OPRITĂ. Impulsurile HIGH / LOW sunt generate de la Arduino Nano în funcție de intrarea sunetului.
După lipirea circuitului complet pe perfboard, va arăta ca mai jos:
Aici am folosit o cutie de plastic ca recipient pentru fântână și mini pompă de 5v pentru a acționa ca fântână, am folosit această pompă anterior în robotul de stingere a incendiilor:
Programare Arduino Nano pentru Fântâna dansatoare
Programul complet al acestui proiect de fântână de apă Arduino este dat în partea de jos a paginii. Dar aici explic doar asta prin părți pentru o mai bună înțelegere:
Prima parte a programului este de a declara variabilele necesare pentru atribuirea numerelor de pin pe care le vom folosi în următoarele blocuri ale programului. Apoi definiți un REF constant cu o valoare care este valoarea de referință pentru modulul senzorului de sunet. Valoarea alocată 700 este valoarea echivalentă a octeților semnalului electric de ieșire al senzorului de sunet.
senzor int = A6; int redled = 12; int greenled = 11; pompa int = 10; #define REF 700
În funcția de configurare nulă , am folosit funcția pinMode pentru a atribui direcția de date INPUT / OUTPUT a pinilor. Aici senzorul este luat ca INPUT și toate celelalte dispozitive sunt utilizate ca OUTPUT.
void setup () { pinMode (senzor, INPUT); pinMode (redled, OUTPUT); pinMode (verde, OUTPUT); pinMode (pompă, OUTPUT); }
În interiorul buclei infinite, se numește funcția analogRead care citeste valoarea analogică intrată de la pinul senzorului și o stochează într-o valoare senzor_variabilă .
int senzor_valor = analogRead (senzor);
În partea finală se utilizează o buclă if-else pentru a compara semnalul analogic de intrare cu valoarea de referință. Dacă este mai mare decât referința, atunci toți pinii de ieșire primesc ieșire HIGH, astfel încât toate LED-urile și pompa să fie activate, altfel totul rămâne OPRIT. Aici am dat, de asemenea, o întârziere de 70 de milisecunde pentru a distinge timpul ON / OFF al releului.
if (senzor_valor> REF) { digitalWrite (verde, HIGH); digitalWrite (redled, HIGH); digitalWrite (pompa, HIGH); întârziere (70); } else { digitalWrite (greenled, LOW); digitalWrite (redled, LOW); digitalWrite (pompă, LOW); întârziere (70); }
Așa funcționează această fântână de apă controlată de Arduino, codul complet cu un videoclip funcțional este dat mai jos.