- Materiali richiesti:
- Schema elettrico:
- Utilizzo del metodo di regressione per calcolare dB dal valore ADC:
- Programma Arduino per misurare il livello sonoro in dB:
- Funzionamento del fonometro Arduino:
- Amplificatore con circuito filtri:
L'inquinamento acustico ha davvero iniziato ad acquisire importanza a causa dell'elevata densità di popolazione. Un normale orecchio umano potrebbe sentire livelli sonori da 0dB a 140dB in cui i livelli sonori da 120dB a 140dB sono considerati rumore. La sonorità o i livelli sonori sono comunemente misurati in decibel (dB), abbiamo alcuni strumenti che potrebbero misurare i segnali sonori in dB ma questi misuratori sono leggermente costosi e purtroppo non abbiamo un modulo sensore fuori scatola per misurare i livelli sonori in decibel. E non è economico acquistare costosi microfoni per un piccolo progetto Arduino che dovrebbe misurare il livello sonoro in una piccola classe o in un soggiorno.
Quindi in questo progetto useremo un normale microfono Electret Condenser con Arduino e proveremo a misurare il livello di inquinamento acustico o acustico in dB il più vicino possibile al valore effettivo. Useremo un normale circuito amplificatore per amplificare i segnali sonori e alimentarlo ad Arduino in cui useremo il metodo di regressione per calcolare i segnali sonori in dB. Per verificare se i valori ottenuti sono corretti possiamo utilizzare l' applicazione Android “Sound Meter”, se avete un misuratore migliore potete usarlo per la calibrazione. Tieni presente che questo progetto non mira a misurare i dB in modo accurato e fornirà solo valori il più vicini possibile al valore effettivo.
Materiali richiesti:
- Arduino UNO
- Microfono
- LM386
- POT variabile 10K
- Resistenze e condensatori
Schema elettrico:
Il circuito per questo fonometro Arduino è molto semplice in cui abbiamo utilizzato il circuito amplificatore audio LM386 per amplificare i segnali da un microfono a condensatore e fornirlo alla porta analogica di Arduino. Abbiamo già utilizzato questo CI LM386 per costruire un circuito amplificatore audio a bassa tensione e il circuito rimane più o meno lo stesso.
Il guadagno di questo particolare amplificatore operazionale può essere impostato da 20 a 200 utilizzando un resistore o un condensatore tra i pin 1 e 8. Se vengono lasciati liberi, il guadagno sarà impostato su 20 per impostazione predefinita. Per il nostro progetto abbiamo il massimo guadagno possibile da questo circuito, quindi utilizziamo un condensatore di valore 10uF tra i pin 1 e 8, notare che questo pin è sensibile alla polarità e il pin negativo del condensatore deve essere collegato al pin 8. L'amplificatore completo è alimentato dal pin 5V di Arduino.
Il condensatore C2 viene utilizzato per filtrare il rumore CC dal microfono. Fondamentalmente quando il microfono rileva il suono, le onde sonore verranno convertite in segnali CA. Questo segnale CA potrebbe avere del rumore CC accoppiato con esso che verrà filtrato da questo condensatore. Allo stesso modo, anche dopo l'amplificazione, viene utilizzato un condensatore C3 per filtrare qualsiasi rumore CC che potrebbe essere stato aggiunto durante l'amplificazione.
Utilizzo del metodo di regressione per calcolare dB dal valore ADC:
Una volta che siamo pronti con il nostro circuito, possiamo collegare Arduino al computer e caricare il programma di esempio "Analog Read Serial" da Arduino per verificare se stiamo ottenendo valori ADC validi dal nostro microfono. Ora dobbiamo convertire i valori di questo ADC in dB.
A differenza di altri valori come la misurazione della temperatura o dell'umidità, la misurazione dei dB non è un'operazione semplice. Perché il valore di dB non è lineare con il valore di ADC. Ci sono pochi modi in cui puoi arrivare, ma ogni possibile passo che ho provato non mi ha dato buoni risultati. Puoi leggere questo forum di Arduino qui se vuoi provarlo.
Per la mia applicazione, non avevo bisogno di molta precisione durante la misurazione dei valori dB e quindi ho deciso di utilizzare un modo più semplice per calibrare direttamente i valori ADC con valori dB. Per questo metodo, avremo bisogno di un misuratore SPL (un misuratore SPL è uno strumento che potrebbe leggere i valori in dB e visualizzarli), ma purtroppo non ne avevo uno e sicuramente la maggior parte di noi non lo farà. Quindi possiamo usare l' applicazione Android chiamata "Fonometro" che può essere scaricata gratuitamente dal Play Store. Esistono molti di questi tipi di applicazioni e puoi scaricare qualsiasi cosa a tua scelta. Queste applicazioni utilizzano il microfono integrato del telefono per rilevare il livello di rumore e visualizzarlo sul nostro cellulare. Non sono molto precisi, ma funzionerebbero sicuramente per il nostro compito. Quindi iniziamo installando l'applicazione Android, la mia una volta aperta sembrava qualcosa del genere di seguito
Come ho detto prima, la relazione tra dB e valori analogici non sarà lineare, quindi dobbiamo confrontare questi due valori a intervalli diversi. Basta annotare il valore di ADC visualizzato sullo schermo per diversi dB visualizzati sul telefono cellulare. Ho fatto circa 10 letture e sembravano così sotto, potresti variare un po '
Apri una pagina Excel e digita questi valori, per ora useremo Excel per trovare i valori di regressione per il numero sopra. Prima di ciò tracciamo un grafico e controlliamo come si relazionano entrambi, il mio aveva questo aspetto qui sotto.
Come possiamo vedere, il valore di dB non è correlato linearmente con ADC, il che significa che non è possibile avere un moltiplicatore comune per tutti i valori ADC per ottenere i suoi valori dB equivalenti. In tal caso possiamo utilizzare il metodo della "regressione lineare". Fondamentalmente, convertirà questa linea blu irregolare nella linea retta più vicina possibile (linea nera) e ci darà l'equazione di quella linea retta. Questa equazione può essere utilizzata per trovare il valore equivalente di dB per ogni valore di ADC misurato da Arduino.
In Excel abbiamo un plug-in per l'analisi dei dati che calcolerà automaticamente la regressione per il tuo insieme di valori e pubblicherà i suoi dati. Non spiegherò come farlo con Excel poiché è al di fuori dello scopo di questo progetto, inoltre è facile per te Google e impararlo. Una volta calcolata la regressione per il valore, Excel fornirà alcuni valori come mostrato di seguito. A noi interessano solo i numeri che vengono evidenziati di seguito.
Una volta ottenuti questi numeri sarai in grado di formare l'equazione seguente come
ADC = (11,003 * dB) - 83,2073
Da cui puoi derivare il dB da essere
dB = (ADC + 83,2073) / 11,003
Potrebbe essere necessario guidare la propria equazione poiché la calibrazione potrebbe essere diversa. Tuttavia, tieni al sicuro questo valore perché ne avremo bisogno durante la programmazione di Arduino.
Programma Arduino per misurare il livello sonoro in dB:
Il programma completo per misurare i dB è fornito di seguito, alcune righe importanti sono spiegate di seguito
In queste due righe sopra, leggiamo il valore ADC del pin A0 e lo convertiamo in dB usando l'equazione che abbiamo appena derivato. Questo valore in dB potrebbe non essere preciso rispetto al valore in dB reale, ma rimane abbastanza vicino ai valori visualizzati sull'applicazione mobile.
adc = analogRead (MIC); // Legge il valore ADC dall'amplificatore dB = (adc + 83.2073) / 11.003; // Converte il valore ADC in dB utilizzando i valori di regressione
Per verificare se il programma funziona correttamente abbiamo anche aggiunto un LED al pin digitale 3 che è fatto per andare alto per 1 secondo quando l'Arduino misura un forte rumore superiore a 60dB.
se (dB> 60) {digitalWrite (3, HIGH); // accende il LED (HIGH è il livello di tensione) delay (1000); // aspetta un secondo digitalWrite (3, LOW); }
Funzionamento del fonometro Arduino:
Una volta che sei pronto con il codice e l'hardware, carica il codice e apri il tuo monitor seriale per guardare i valori dB misurati dal tuo Arduino. Stavo testando questo codice nella mia stanza dove non c'era molto rumore tranne che per il traffico esterno e ho ottenuto i valori seguenti sul mio monitor seriale e anche l'applicazione Android mostrava qualcosa di simile a questo
Il funzionamento completo del progetto si trova nel video riportato alla fine di questa pagina. Puoi utilizzare per proiettare per rilevare il suono nella stanza e controllare se c'è attività o quanto rumore viene generato in ogni classe o qualcosa del genere. Ho appena creato un LED in modo che si accenda per 2 secondi se viene registrato un suono superiore a 60 dB.
Il funzionamento è stranamente soddisfacente, ma può sicuramente essere utilizzato per progetti e altri prototipi di base. Con qualche ricerca in più ho scoperto che il problema era in realtà con l'hardware, che di tanto in tanto mi dava ancora rumore. Quindi ho provato altri circuiti che vengono utilizzati nelle schede microfoniche Spark Fun che hanno un filtro passa-basso e passa-alto. Ho spiegato il circuito qui sotto per farti provare.
Amplificatore con circuito filtri:
Qui abbiamo utilizzato filtri passa basso e passa alto con amplificatore per ridurre il rumore in questo circuito di misurazione del livello sonoro in modo che la precisione possa essere aumentata.
In questo circuito sopra, abbiamo utilizzato il popolare amplificatore LM358 per amplificare i segnali dal microfono. Insieme all'amplificatore abbiamo utilizzato anche due filtri, il filtro passa alto è formato da R5, C2 e il filtro passa basso è utilizzato da C1 e R2. Questi filtri sono progettati per consentire solo la frequenza da 8Hz a 10KHz, poiché il filtro passa basso filtrerà qualsiasi cosa al di sotto di 8Hz e il filtro passa alto filtrerà qualsiasi cosa sopra i 15KHz. Questa gamma di frequenza è selezionata perché il mio microfono a condensatore funziona solo da 10Hz a 15KHZ come mostrato nella scheda tecnica di seguito.
Se la tua richiesta di frequenza cambia, puoi utilizzare le formule seguenti per calcolare il valore di resistenza e condensatore per la frequenza richiesta.
Frequenza (F) = 1 / (2πRC)
Inoltre, nota che il valore del resistore usato qui influenzerà anche il guadagno dell'amplificatore. Di seguito è mostrato il calcolo del valore del resistore e del condensatore utilizzati in questo circuito. Da qui puoi scaricare il foglio Excel per modificare i valori di Frequenza e calcolare i valori di regressione.
Il primo circuito ha funzionato in modo soddisfacente per le mie aspettative, quindi non ho mai provato questo. Se ti capita di provare questo circuito fammi sapere se funziona meglio del precedente tramite i commenti.