Sommario:

Fontana danzante: Arduino con analizzatore di spettro MSGEQ7: 8 passaggi
Fontana danzante: Arduino con analizzatore di spettro MSGEQ7: 8 passaggi

Video: Fontana danzante: Arduino con analizzatore di spettro MSGEQ7: 8 passaggi

Video: Fontana danzante: Arduino con analizzatore di spettro MSGEQ7: 8 passaggi
Video: Water Flower – Fontana danzante all’Iper la Grande i 2024, Dicembre
Anonim
Fontana danzante: Arduino con analizzatore di spettro MSGEQ7
Fontana danzante: Arduino con analizzatore di spettro MSGEQ7

Molto interessante è la ricezione di un segnale audio e la sua conversione in reazione visiva o meccanica. In questo progetto utilizzeremo un Arduino Mega da collegare ad un analizzatore di spettro MSGEQ7 che preleva il segnale audio in ingresso ed esegue su di esso un filtraggio passa banda per dividerlo in 7 bande di frequenza principali. L'Arduino analizzerà quindi il segnale analogico di ciascuna banda di frequenza e creerà un'azione.

Fase 1: Obiettivi del progetto

Questo progetto discuterà 3 modalità di funzionamento:

  1. I LED sono collegati ai pin digitali PWM per reagire alle bande di frequenza
  2. I LED sono collegati ai pin digitali per reagire alle bande di frequenza
  3. Le pompe sono collegate all'Arduino Mega tramite i driver Motor e reagiscono alle bande di frequenza

Fase 2: Teoria

Teoria
Teoria
Teoria
Teoria

Se parliamo del CI Analizzatore di Spettro MSGEQ7 possiamo dire che dispone di 7 filtri passa banda interni che dividono il segnale audio in ingresso in 7 bande principali: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2,5 kHz, 6,25 kHz e 16 kHz.

L'uscita di ciascun filtro viene scelta per essere l'uscita dell'IC utilizzando un multiplexer. Quel multiplexer ha linee di selezione controllate da un contatore binario interno. Quindi possiamo dire che il contatore dovrebbe contare da 0 a 6 (da 000 a 110 in binario) per consentire il passaggio di una banda alla volta. Ciò chiarisce che il codice di Arduino dovrebbe essere in grado di ripristinare il contatore una volta raggiunto il conteggio 7.

Se diamo un'occhiata allo schema del circuito dell'MSGEQ7 possiamo vedere che utilizziamo il sintonizzatore di frequenza RC per controllare il clock interno dell'oscillatore. quindi utilizziamo elementi RC di filtraggio alla porta del segnale audio in ingresso.

Passaggio 3: procedure

Procedure
Procedure

Secondo la pagina sorgente (https://www.baldengineer.com/msgeq7-simple-spectrum-analyzer.html) possiamo vedere che il codice sorgente tratta le uscite come segnali PWM ripetitivi. possiamo modificare alcune righe di codice per soddisfare i nostri obiettivi.

Possiamo notare che se abbiamo un jack stereo, possiamo raddoppiare la resistenza di ingresso e il condensatore al secondo canale. Alimentiamo MSGEQ7 da Arduino VCC (5 volt) e GND. Collegheremo il MSGEQ7 alla scheda Arduino. Preferisco usare Arduino Mega in quanto ha pin PWM adatti al progetto. L'uscita dell'IC MSGEQ7 è collegata al pin analogico A0, lo STROBE è collegato al pin 2 dell'Arduino Mega e il RESET è collegato al pin 3.

Fase 4: Modalità di funzionamento: 1- LED come uscite digitali PWM

Modalità di funzionamento: 1- LED come uscite digitali PWM
Modalità di funzionamento: 1- LED come uscite digitali PWM

Secondo il codice sorgente, possiamo collegare i LED di uscita ai pin da 4 a 10

const int LED_pins[7] ={4, 5, 6, 7, 8, 9, 10};

Quindi possiamo notare che i LED danzano sulla forza di ciascuna banda di frequenza.

Passaggio 5: Modalità di funzionamento: 2- LED come uscite digitali

Image
Image
Modalità di funzionamento: 3- Pompe come uscite digitali
Modalità di funzionamento: 3- Pompe come uscite digitali

Possiamo collegare i LED di uscita a qualsiasi pin digitale.

const int LED_pins[7] ={40, 42, 44, 46, 48, 50, 52};

Quindi possiamo notare che i LED lampeggiano in base alla forza di ciascuna banda di frequenza.

Fase 6: Modalità di funzionamento: 3- Pompe come uscite digitali

Modalità di funzionamento: 3- Pompe come uscite digitali
Modalità di funzionamento: 3- Pompe come uscite digitali

In quest'ultima modalità collegheremo il modulo driver motore L298N alle uscite dell'Arduino. questo ci consente di controllare il funzionamento della pompa in base all'uscita dell'analizzatore di spettro MSGEQ7.

Come noto, i driver del motore ci consentono di controllare il funzionamento dei motori o delle pompe collegati in base al segnale generato dall'Arduino senza assorbire alcuna corrente dall'Arduino, invece alimentano i motori direttamente dalla fonte di alimentazione collegata.

Se eseguiamo il codice come sorgente non elaborata, le pompe potrebbero non funzionare correttamente. Questo perché il segnale PWM è basso e non sarà adatto al driver del motore per far funzionare i motori o le pompe e fornire una corrente adeguata. Ecco perché consiglio di aumentare il valore PWM moltiplicando le letture analogiche da A0 con fattore maggiore di 1.3. Questo aiuta la mappatura ad essere adatta al driver del motore. Consiglio da 1.4 a 1.6. Inoltre possiamo rimappare il PWM da 50 a 255 per essere sicuri che il valore PWM sia adatto.

Possiamo collegare i LED insieme alle uscite per i driver del motore, ma i LED non lampeggeranno in modo ben visibile come prima poiché i valori PWM sono stati aumentati. Quindi suggerisco di tenerli collegati ai pin digitali dal 40 al 52.

Passaggio 7: contatti

Sono così felice di ricevere feedback da te. Per favore, non esitare a unirti ai miei canali su:

YouTube:

Instagram: @simplydigital010

Twitter: @simply01Digital

Consigliato: