- Materiale richiesto
- Funzionamento di un sensore di suono
- Schema del circuito del sensore di suono
- Schema del circuito musicale della fontana d'acqua
- Programmazione di Arduino Nano per Dancing Fountain
Ci sono diverse fontane d'acqua che spruzzano incondizionatamente l'acqua con alcuni interessanti effetti di luce. Così ho vagato per progettare una fontana d'acqua innovativa che può rispondere alla musica esterna e spruzzare acqua a seconda dei ritmi musicali. Non sembra interessante?
L'idea di base di questa fontana d'acqua Arduino è quella di prendere un input da qualsiasi fonte sonora esterna come cellulare, iPod, PC ecc., Campionare il suono e scomporlo in diversi intervalli di tensione, quindi utilizzare l'uscita per accendere vari relè. Per prima cosa abbiamo utilizzato un modulo sensore del suono basato su microfono a condensatore per eseguire sulla sorgente sonora per dividere i suoni in diversi intervalli di tensione. Quindi la tensione verrà inviata all'amplificatore operazionale per confrontare il livello del suono con un limite particolare. La gamma di tensione più alta corrisponderà a un interruttore a relè ON che comprende una fontana d'acqua musicale che funziona ai battiti e ai ritmi della canzone. Quindi qui stiamo costruendo questa Fontana Musicale usando Arduino e un sensore sonoro.
Materiale richiesto
- Arduino Nano
- Modulo sensore sonoro
- Modulo relè 12V
- DC Pump
- LED
- Cavi di collegamento
- Vero board o Breadboard
Funzionamento di un sensore di suono
Il modulo del sensore del suono è una semplice scheda elettronica basata su un microfono a elettrete utilizzata per rilevare il suono esterno dall'ambiente. Si basa sull'amplificatore di potenza LM393 e su un microfono a elettrete, può essere utilizzato per rilevare se c'è un suono oltre il limite di soglia impostato. L'uscita del modulo è un segnale digitale che indica che il suono è maggiore o minore della soglia.
Il potenziometro può essere utilizzato per regolare la sensibilità del modulo sensore. L'uscita del modulo è ALTA / BASSA quando la sorgente sonora è inferiore / superiore alla soglia impostata dal potenziometro. Lo stesso modulo sensore acustico può essere utilizzato anche per misurare il livello sonoro in decibel.
Schema del circuito del sensore di suono
Come sappiamo che in un modulo sensore del suono, il dispositivo di input di base è il microfono che converte i segnali audio in segnali elettrici. Ma poiché l'uscita del segnale elettrico del sensore del suono è così piccola in grandezza che è molto difficile da analizzare, abbiamo utilizzato un circuito amplificatore a transistor NPN che lo amplierà e fornirà il segnale di uscita all'ingresso non invertente dell'Op- amp. Qui LM393 OPAMP viene utilizzato come comparatore che confronta il segnale elettrico dal microfono e il segnale di riferimento proveniente dal circuito partitore di tensione. Se il segnale di ingresso è maggiore del segnale di riferimento, l'uscita dell'OPAMP sarà alta e viceversa.
Puoi seguire le sezioni dei circuiti op-amp per saperne di più sul suo funzionamento.
Schema del circuito musicale della fontana d'acqua
Come mostrato nello schema circuitale della fontana musicale sopra, il sensore del suono è alimentato con un'alimentazione a 3,3 V di Arduino Nano e il pin di uscita del modulo del sensore del suono è collegato al pin di ingresso analogico (A6) di Nano. Puoi usare qualsiasi pin analogico, ma assicurati di cambiarlo nel programma. Il modulo relè e la pompa DC sono alimentati da un alimentatore esterno 12VDC come mostrato in figura. Il segnale di ingresso del modulo relè è collegato al pin di uscita digitale D10 di Nano. Per l'effetto luminoso ho scelto due diversi colori di LED e li ho collegati a due pin di uscita digitale (D12, D11) di Nano.
Qui la pompa è collegata in modo tale che quando viene dato un impulso ALTO all'ingresso del modulo relè, il contatto COM del relè viene collegato al contatto NO e la corrente ottiene un percorso a circuito chiuso per fluire attraverso la pompa verso attivare il flusso d'acqua. Altrimenti la pompa rimarrà spenta. Gli impulsi ALTO / BASSO sono generati da Arduino Nano a seconda dell'ingresso audio.
Dopo aver saldato il circuito completo su perfboard, apparirà come di seguito:
Qui abbiamo usato una scatola di plastica come contenitore per fontana e una mini pompa 5v per fungere da fontana, abbiamo usato questa pompa in precedenza in robot antincendio:
Programmazione di Arduino Nano per Dancing Fountain
Il programma completo di questo progetto di fontana d'acqua Arduino è dato in fondo alla pagina. Ma qui lo sto solo spiegando per parti per una migliore comprensione:
La prima parte del programma consiste nel dichiarare le variabili necessarie per l'assegnazione dei numeri di pin che useremo nei prossimi blocchi di programma. Quindi definire una costante REF con un valore che è il valore di riferimento per il modulo sensore di suono. Il valore assegnato 700 è il valore equivalente in byte del segnale elettrico di uscita del sensore di suono.
sensore int = A6; int redled = 12; int greenled = 11; int pompa = 10; #define REF 700
Nella funzione di configurazione void abbiamo utilizzato la funzione pinMode per assegnare la direzione dei dati INPUT / OUTPUT dei pin. Qui il sensore viene considerato come INPUT e tutti gli altri dispositivi vengono utilizzati come OUTPUT.
void setup () { pinMode (sensor, INPUT); pinMode (redled, OUTPUT); pinMode (greenled, OUTPUT); pinMode (pompa, USCITA); }
All'interno del loop infinito, viene chiamata la funzione analogRead che legge l'ingresso del valore analogico dal pin del sensore e lo memorizza in una variabile sensor_value .
int sensor_value = analogRead (sensore);
Nella parte finale viene utilizzato un loop if-else per confrontare il segnale analogico in ingresso con il valore di riferimento. Se è maggiore del riferimento, a tutti i pin di uscita viene assegnata un'uscita ALTA in modo che tutti i LED e la pompa siano attivati, altrimenti tutto rimane spento. Qui abbiamo anche assegnato un ritardo di 70 millisecondi per distinguere il tempo di attivazione / disattivazione del relè.
if (sensor_value> REF) { digitalWrite (greenled, HIGH); digitalWrite (redled, HIGH); digitalWrite (pompa, ALTO); ritardo (70); } else { digitalWrite (greenled, LOW); digitalWrite (redled, LOW); digitalWrite (pompa, BASSA); ritardo (70); }
Ecco come funziona questa fontana d'acqua controllata da Arduino, di seguito viene fornito il codice completo con un video funzionante.