- Materiales necesarios:
- Diagrama de circuito:
- Uso del método de regresión para calcular dB a partir del valor ADC:
- Programa Arduino para medir el nivel de sonido en dB:
- Funcionamiento del medidor de nivel de sonido Arduino:
- Amplificador con circuito de filtros:
La contaminación acústica realmente ha comenzado a ganar importancia debido a la alta densidad de población. Un oído humano normal podría escuchar niveles de sonido de 0dB a 140dB en los que los niveles de sonido de 120dB a 140dB se consideran ruido. La sonoridad o los niveles de sonido se miden comúnmente en decibelios (dB), tenemos algunos instrumentos que pueden medir las señales de sonido en dB, pero estos medidores son un poco caros y, lamentablemente, no tenemos un módulo sensor listo para usar para medir los niveles de sonido en decibelios. Y no es económico comprar micrófonos caros para un pequeño proyecto de Arduino que debería medir el nivel de sonido en una pequeña sala de clase o sala de estar.
Así que en este proyecto usaremos un micrófono condensador Electret normal con Arduino e intentaremos medir el nivel de contaminación acústica o acústica en dB lo más cerca posible del valor real. Usaremos un circuito amplificador normal para amplificar las señales de sonido y alimentarlo a Arduino en el que usaremos el método de regresión para calcular las señales de sonido en dB. Para comprobar si los valores obtenidos son correctos podemos usar la aplicación de Android “Sound Meter”, si tienes un mejor medidor puedes usarlo para calibración. Tenga en cuenta que este proyecto no tiene como objetivo medir dB con precisión y solo proporcionará valores lo más cercanos posible al valor real.
Materiales necesarios:
- Arduino UNO
- Micrófono
- LM386
- POT variable 10K
- Resistencias y condensadores
Diagrama de circuito:
El circuito para este medidor de nivel de sonido Arduino es muy simple en el que hemos utilizado el circuito amplificador de audio LM386 para amplificar las señales de un micrófono de condensador y suministrarlo al puerto analógico de Arduino. Ya hemos utilizado este LM386 IC para construir un circuito amplificador de audio de bajo voltaje y el circuito sigue siendo más o menos el mismo.
La ganancia de este amplificador operacional en particular se puede configurar de 20 a 200 usando una resistencia o condensador en los pines 1 y 8. Si se dejan libres, la ganancia se establecerá en 20 por defecto. Para nuestro proyecto tenemos la máxima ganancia posible por este circuito, por lo que usamos un capacitor de valor 10uF entre los pines 1 y 8, tenga en cuenta que este pin es sensible a la polaridad y el pin negativo del capacitor debe conectarse al pin 8. El amplificador completo El circuito está alimentado por el pin de 5V del Arduino.
El condensador C2 se utiliza para filtrar el ruido de CC del micrófono. Básicamente, cuando el micrófono detecta sonido, las ondas sonoras se convertirán en señales de CA. Esta señal de CA puede tener algo de ruido de CC acoplado, que será filtrado por este condensador. De manera similar, incluso después de la amplificación, se usa un condensador C3 para filtrar cualquier ruido de CC que pueda haberse agregado durante la amplificación.
Uso del método de regresión para calcular dB a partir del valor ADC:
Una vez que estemos listos con nuestro circuito, podemos conectar el Arduino a la computadora y cargar el programa de ejemplo "Analog Read Serial" de Arduino para verificar si estamos obteniendo valores ADC válidos de nuestro micrófono. Ahora tenemos que convertir estos valores de ADC a dB.
A diferencia de otros valores como medir la temperatura o la humedad, medir dB no es una tarea sencilla. Porque el valor de dB no es lineal con el valor de ADC. Hay pocas formas en las que puede llegar, pero cada paso posible que intenté no me dio buenos resultados. Puedes leer este foro de Arduino aquí si quieres probarlo.
Para mi aplicación, no necesitaba mucha precisión al medir los valores de dB y, por lo tanto, decidí utilizar una forma más fácil de calibrar directamente los valores de ADC con valores de dB. Para este método, necesitaremos un medidor de SPL (un medidor de SPL es un instrumento que puede leer valores de dB y mostrarlos), pero lamentablemente no tenía uno y seguro que la mayoría de nosotros no lo tendremos. Entonces podemos usar la aplicación de Android llamada "Sonómetro" que se puede descargar de Play Store de forma gratuita. Existen muchos tipos de aplicaciones de este tipo y puede descargar cualquier cosa que desee. Estas aplicaciones utilizan el micrófono incorporado del teléfono para detectar el nivel de ruido y mostrarlo en nuestro móvil. No son muy precisos, pero seguramente funcionarían para nuestra tarea. Así que comencemos instalando la aplicación de Android, la mía cuando se abrió se veía así a continuación
Como dije anteriormente, la relación entre dB y los valores analógicos no será lineal, por lo que debemos comparar estos dos valores en diferentes intervalos. Simplemente anote el valor de ADC que se muestra en la pantalla para los diferentes dB que se muestran en su teléfono móvil. Tomé alrededor de 10 lecturas y se veían así a continuación, puede variar un poco
Abra una página de Excel y escriba estos valores, por ahora usaremos Excel para encontrar los valores de regresión para el número anterior. Antes de eso, tracemos un gráfico y verifiquemos cómo se relacionan ambos, el mío se veía así a continuación.
Como podemos ver, el valor de dB no está relacionado linealmente con ADC, lo que significa que no puede tener un multiplicador común para todos los valores de ADC para obtener sus valores de dB equivalentes. En tal caso, podemos utilizar el método de "regresión lineal". Básicamente, convertirá esta línea azul irregular en la línea recta más cercana posible (línea negra) y nos dará la ecuación de esa línea recta. Esta ecuación se puede utilizar para encontrar el valor equivalente de dB para cada valor de ADC que mide Arduino.
En Excel tenemos un complemento para el análisis de datos que calculará automáticamente la regresión para su conjunto de valores y publicará sus datos. No voy a cubrir cómo hacerlo con Excel ya que está fuera del alcance de este proyecto, también es fácil para usted buscarlo en Google y aprenderlo. Una vez que calcule la regresión para el valor, Excel le dará algunos valores como se muestra a continuación. Solo nos interesan los números que se destacan a continuación.
Una vez que obtenga estos números, podrá formar la siguiente ecuación como
ADC = (11.003 * dB) - 83.2073
De donde se pueden derivar los dB para ser
dB = (ADC + 83.2073) / 11.003
Es posible que deba manejar su propia ecuación ya que la calibración puede diferir. Sin embargo, mantenga este valor seguro porque lo necesitaremos mientras programamos el Arduino.
Programa Arduino para medir el nivel de sonido en dB:
El programa completo para medir dB se da a continuación, algunas líneas importantes se explican a continuación
En estas dos líneas anteriores, leemos el valor ADC del pin A0 y lo convertimos a dB usando la ecuación que acabamos de derivar. Es posible que este valor de dB no sea exacto al valor real de dB, pero permanece bastante cerca de los valores mostrados en la aplicación móvil.
adc = analogRead (MIC); // Leer el valor de ADC del amplificador dB = (adc + 83.2073) / 11.003; // Convierta el valor ADC a dB usando valores de regresión
Para verificar si el programa está funcionando correctamente, también hemos agregado un LED al pin digital 3 que se hace para ir alto durante 1 segundo cuando el Arduino mide un ruido fuerte por encima de 60dB.
si (dB> 60) {digitalWrite (3, HIGH); // enciende el LED (HIGH es el nivel de voltaje) delay (1000); // esperar un segundo digitalWrite (3, LOW); }
Funcionamiento del medidor de nivel de sonido Arduino:
Una vez que esté listo con el código y el hardware, simplemente cargue el código y abra su monitor en serie para ver los valores de dB medidos por su Arduino. Estaba probando este código en mi habitación donde no había mucho ruido excepto por el tráfico afuera y obtuve los valores a continuación en mi monitor de serie y la aplicación de Android también mostró algo cercano a esto
El funcionamiento completo del proyecto se puede encontrar en el video que se encuentra al final de esta página. Puedes utilizar para proyectar para detectar sonido en la sala y comprobar si hay alguna actividad o cuánto ruido se genera en cada aula o algo así. Acabo de hacer que un LED se eleve durante 2 segundos si hay sonido grabado por encima de 60dB.
El trabajo es extrañamente satisfactorio, pero seguro que se puede utilizar para proyectos y otros prototipos básicos. Con algunas excavaciones más, descubrí que el problema era en realidad con el hardware, que todavía me hacía ruido de vez en cuando. Así que probé otros circuitos que se utilizan en las divertidas placas de micrófono Spark que tienen un filtro de paso bajo y paso alto. He explicado el circuito a continuación para que lo pruebes.
Amplificador con circuito de filtros:
Aquí hemos utilizado filtros de paso bajo y paso alto con amplificador para reducir el ruido en este circuito de medición de nivel de sonido para que se pueda aumentar la precisión.
En este circuito anterior, hemos utilizado el popular amplificador LM358 para amplificar las señales del micrófono. Junto con el amplificador también hemos utilizado dos filtros, el filtro de paso alto está formado por R5, C2 y el filtro de paso bajo lo utilizan los C1 y R2. Estos filtros están diseñados para permitir frecuencias solo de 8Hz a 10KHz, ya que el filtro de paso bajo filtrará cualquier cosa por debajo de 8Hz y el filtro de paso alto filtrará cualquier cosa por encima de 15KHz. Este rango de frecuencia se selecciona porque mi micrófono de condensador funciona solo de 10Hz a 15KHZ como se muestra en la hoja de datos a continuación.
Si su demanda de frecuencia cambia, puede usar las fórmulas siguientes para calcular el valor de la resistencia y el condensador para la frecuencia requerida.
Frecuencia (F) = 1 / (2πRC)
Además, tenga en cuenta que el valor de la resistencia que se utiliza aquí también afectará la ganancia del amplificador. A continuación se muestra el cálculo del valor de la resistencia y el condensador utilizados en este circuito. Puede descargar la hoja de Excel desde aquí para modificar los valores de Frecuencia y calcular los valores de regresión.
El circuito anterior funcionó satisfactoriamente para mis expectativas, así que nunca probé este. Si prueba este circuito, avíseme si funciona mejor que el anterior a través de los comentarios.