- Materials necessaris:
- Esquema de connexions:
- Ús del mètode de regressió per calcular dB a partir del valor ADC:
- Programa Arduino per mesurar el nivell de so en dB:
- Funcionament del mesurador de nivell sonor Arduino:
- Amplificador amb circuit de filtres:
La contaminació acústica ha començat a guanyar importància a causa de l’alta densitat de població. Una orella humana normal pot sentir nivells sonors de 0dB a 140dB, en els quals els nivells sonors de 120dB a 140dB es consideren sorolls. La intensitat o els nivells sonors es mesuren habitualment en decibels (dB), tenim alguns instruments que podrien mesurar els senyals sonors en dB, però aquests mesuradors són lleugerament cars i, malauradament, no disposem d’un mòdul de sensor fora de caixa per mesurar els nivells sonors en decibels. I no és econòmic comprar micròfons cars per a un petit projecte Arduino que hauria de mesurar el nivell de so en una petita aula o sala d’estar.
Per tant, en aquest projecte utilitzarem un micròfon Electret Condenser normal amb Arduino i provarem de mesurar el nivell de contaminació acústica i sonora en dB el més proper possible al valor real. Utilitzarem un circuit amplificador normal per amplificar els senyals sonors i alimentar-lo a Arduino en el qual utilitzarem un mètode de regressió per calcular els senyals sonors en dB. Per comprovar si els valors obtinguts són correctes, podem utilitzar l’ aplicació per a android “Sound Meter”, si teniu un mesurador millor, podeu utilitzar-lo per al calibratge. Tingueu en compte que aquest projecte no pretén mesurar dB amb precisió i només donarà valors el més propers possible al valor real.
Materials necessaris:
- Arduino UNO
- Micròfon
- LM386
- POT variable de 10K
- Resistències i condensadors
Esquema de connexions:

El circuit d’aquest mesurador de nivell de so Arduino és un mètode molt senzill en què hem utilitzat el circuit amplificador d’àudio LM386 per amplificar els senyals d’un micròfon de condensador i subministrar-lo al port analògic d’Arduino. Ja hem utilitzat aquest IC LM386 per construir un circuit d'amplificador d'àudio de baixa tensió i el circuit més o menys continua sent el mateix.
El guany d'aquest amplificador operacional en particular es pot establir de 20 a 200 mitjançant una resistència o un condensador a través dels pins 1 i 8. Si es deixen lliures, el guany es definirà com a 20 per defecte. Per al nostre projecte obtenim el màxim guany possible per aquest circuit, de manera que fem servir un condensador de valor 10uF entre els pins 1 i 8, tingueu en compte que aquest pin és sensible a la polaritat i que el pin negatiu del condensador hauria d’estar connectat al pin 8. L’amplificador complet el circuit s’alimenta del pin de 5V de l’Arduino.
El condensador C2 s’utilitza per filtrar el soroll de CC del micròfon. Bàsicament, quan el micròfon detecta el so, les ones sonores es convertiran en senyals de corrent altern. Aquest senyal de corrent altern pot tenir algun soroll de corrent continu combinat amb ell que serà filtrat per aquest condensador. De la mateixa manera, fins i tot després de l'amplificació s'utilitza un condensador C3 per filtrar qualsevol soroll de corrent continu que s'hagi pogut afegir durant l'amplificació.

Ús del mètode de regressió per calcular dB a partir del valor ADC:
Un cop estem preparats amb el nostre circuit, podem connectar l'Arduino a l'ordinador i penjar el programa d'exemple "Analog Read Serial" d'Arduino per comprovar si obtenim valors ADC vàlids des del nostre micròfon. Ara hem de convertir aquests valors ADC a dB.
A diferència d'altres valors com mesurar la temperatura o la humitat, mesurar dB no és una tasca senzilla. Com que el valor de dB no és lineal amb el valor d’ADC. Hi ha poques maneres d’arribar-hi, però tots els passos possibles que he provat no m’han donat bons resultats. Podeu llegir aquest fòrum Arduino aquí si voleu provar-ho.
Per a la meva aplicació, no necessitava molta precisió en mesurar els valors de dB i, per tant, vaig decidir utilitzar una manera més senzilla de calibrar directament els valors ADC amb valors de dB. Per a aquest mètode, necessitarem un mesurador SPL (un mesurador SPL és un instrument que pugui llegir i mostrar valors dB), però per desgràcia no en tenia i segur que la majoria de nosaltres no. Així doncs, podem utilitzar l’ aplicació per a Android anomenada “Sound meter” que es pot descarregar des de Play Store de forma gratuïta. Hi ha molts d’aquests tipus d’aplicacions i podeu descarregar qualsevol cosa que vulgueu. Aquestes aplicacions utilitzen el micròfon incorporat del telèfon per detectar el nivell de soroll i mostrar-lo al nostre mòbil. No són molt precisos, però segur que funcionarien per a la nostra tasca. Comencem, doncs, instal·lant l’aplicació Android, la meva quan es va obrir semblava una cosa així a continuació

Com he dit anteriorment, la relació entre dB i els valors analògics no serà lineal, per tant, hem de comparar aquests dos valors a intervals diferents. Només cal que anoteu el valor de l'ADC que es mostra a la pantalla per diferents dB que es mostren al vostre telèfon mòbil. Vaig fer unes deu lectures i semblaven a continuació, és possible que varieu una mica

Obriu una pàgina d'Excel i escriviu aquests valors, de moment farem servir Excel per trobar els valors de regressió del nombre anterior. Abans traçem un gràfic i comprovem com es relacionen tots dos, el meu semblava a continuació.

Com podem veure, el valor de dB no està relacionat linealment amb ADC, de manera que no podeu tenir un multiplicador comú per a tots els valors ADC per obtenir els seus valors dB equivalents. En aquest cas, podem utilitzar el mètode de "regressió lineal". Bàsicament, convertirà aquesta línia blava irregular a la recta més propera possible (línia negra) i ens donarà l’equació d’aquesta recta. Aquesta equació es pot utilitzar per trobar el valor equivalent de dB per a cada valor d'ADC que mesura l'Arduino.
A Excel tenim un complement per a l’anàlisi de dades que calcularà automàticament la regressió del vostre conjunt de valors i publicarà les seves dades. No vaig a parlar de com fer-ho amb Excel, ja que està fora de l’àmbit d’aquest projecte, també és fàcil que Google l’aprengui. Un cop calculada la regressió del valor, Excel donarà alguns valors com es mostra a continuació. Només ens interessen els números que es ressalten a continuació.

Un cop obtingueu aquests números, podreu formar l'equació següent com ara
ADC = (11.003 * dB) - 83.2073
D’on es pot derivar el dB
dB = (ADC + 83.2073) / 11.003
És possible que hàgiu de conduir la vostra pròpia equació, ja que el calibratge pot variar. Tanmateix, mantingueu aquest valor segur perquè el necessitarem mentre programem l'Arduino.
Programa Arduino per mesurar el nivell de so en dB:
A continuació es dóna el programa complet per mesurar dB, a continuació s’expliquen algunes línies importants
En aquestes dues línies anteriors, llegim el valor ADC del pin A0 i el convertim a dB mitjançant l'equació que acabem de derivar. És possible que aquest valor de dB no sigui exacte al valor real de dB, però es manté gairebé a prop dels valors que es mostren a l'aplicació mòbil.
adc = analogRead (MIC); // Llegiu el valor ADC de l'amplifer dB = (adc + 83.2073) / 11.003; // Converteix el valor ADC a dB mitjançant valors de regressió
Per comprovar si el programa funciona correctament, també hem afegit un LED al pin digital 3 que es fa elevat durant 1 segon quan l'Arduino mesura un fort soroll superior a 60 dB.
if (dB> 60) {digitalWrite (3, HIGH); // encendre el LED (HIGH és el nivell de tensió) retard (1000); // espereu un segon digitalWrite (3, BAIX); }
Funcionament del mesurador de nivell sonor Arduino:
Quan estigueu llest amb el codi i el maquinari, només cal que pengeu el codi i obriu el monitor sèrie per veure els valors de dB mesurats pel vostre Arduino. Estava provant aquest codi a la meva habitació, on no hi havia molt soroll, excepte el trànsit exterior, i vaig obtenir els valors següents al meu monitor sèrie i l'aplicació per a Android també va mostrar alguna cosa a prop d'això.

El funcionament complet del projecte es pot trobar al vídeo que es mostra al final d'aquesta pàgina. Podeu utilitzar per projectar per detectar so a la sala i comprovar si hi ha alguna activitat o quant soroll es genera a cada aula o alguna cosa semblant. Acabo de fer un LED per pujar durant 2 segons si hi ha so gravat per sobre de 60dB.
El treball és estranyament satisfactori, però segur que es pot utilitzar per a projectes i altres prototips bàsics. Amb poques excavacions més, vaig trobar que el problema era en realitat el maquinari, que encara em donava soroll de tant en tant. Així que vaig provar altres circuits que s’utilitzen a les plaques de micròfons spark fun que tenen un filtre de pas baix i de pas alt. He explicat el circuit següent perquè el proveu.
Amplificador amb circuit de filtres:
Aquí hem utilitzat filtres de pas baix i alt amb amplificador per reduir el soroll en aquest circuit de mesura del nivell sonor de manera que es pugui augmentar la precisió.

En aquest circuit anterior, hem utilitzat el popular amplificador LM358 per amplificar els senyals del micròfon. Juntament amb l'amplificador també hem utilitzat dos filtres, el filtre de pas alt està format per R5, C2 i el filtre de pas baix és utilitzat per C1 i R2. Aquests filtres estan dissenyats per permetre la freqüència només de 8Hz a 10KHz, ja que el filtre de pas baix filtrarà qualsevol cosa inferior a 8Hz i el filtre de pas alt filtrarà qualsevol cosa per sobre de 15KHz. Aquest rang de freqüències seleccionat és perquè el meu micròfon de condensador només funciona de 10 Hz a 15 KHz, tal com es mostra a la fitxa tècnica següent.

Si la vostra demanda de freqüència canvia, podeu utilitzar les fórmules següents per calcular el valor de la resistència i del condensador per a la freqüència necessària.
Freqüència (F) = 1 / (2πRC)
Tingueu en compte també que el valor de la resistència que s’utilitza aquí també afectarà el guany de l’amplificador. A continuació es mostra el càlcul del valor de la resistència i el condensador que s’utilitzen en aquest circuit. Podeu descarregar el full Excel des d’aquí per modificar els valors de Freqüència i calcular els valors de regressió.

L’antic circuit funcionava satisfactòriament per a les meves expectatives, de manera que no el vaig provar mai. Si proveu aquest circuit, feu-me saber si funciona millor que l'anterior a través dels comentaris.
