Medidor nivel sonoro

Hola, estoy intentando hacer un semáforo por nivel de ruido y siempre me tropiezo con el mismo problema. He buscado por todas partes pero no soy capaz de encontrar una solución.
Solo quiero conectar un módulo con micrófono a una entrada analógica y que lea la intensidad sonora para que la muestre en la consola del puerto serie.
El código no tiene ninguna complicación, pero me entrega valores cuando está completamente en silencio, por ejemplo 32 (ajustando el potenciómetro del módulo claro) y al más mínimo sonido pasa a 1023, no hay forma de "expandir" o "ampliar" el rango.
Supongo que habrá una forma muy sencilla pero no la he encontrado.
He probado con distintos módulos, con la función map... pero nada.
A ver si me podéis echar una mano por favor.

¿Qué modulo has usado y como lo has conectado?

Eso es porque te estas conectando a la salida digital del módulo.
Hay una salida DO y otra AO. La DO es Digital Output y la AO es Analog Output.
Debes conectarte a AO para tener niveles entre 0 y 1023.
Lo que has descripto corresponde a una salida Digital con los cambios realizados en el preset.

Hola, gracias por responder.
No tengo referencia del módulo, pero es de los normales que venden en AE por 1€, aunque he probado con varios de distintos tipos y calidades y con todos hace lo mismo.
También he probado distintos códigos de projectos publicados que funcionan y no consigo que me funcione.
Es exactamente como este

Hola, no, lo conecto a A0-A1... la AO, de hecho, este módulo no lleva DO

@russeti Ese módulo no tiene salida analógica, la salida es digital.
En la última foto del link está el esquema electrónico, del lado derecho hay una figura triangular que representa un amplificador operacional (LM393) que está configurado como comparador.
Justamente compara la señal del micrófono (amplificada por el transistor S9014) con el umbral que fijes con el preset.
Cuando el "volumen" es inferior al fijado la salida es 0, cuando la señal es igual o mayor la salida cambia a aproximadamente Vcc.
"Jugando" un poco con el preset puedes buscar un nivel que te genere un tren de pulsos que acompañe más o menos la señal que capta el micrófono pero no puedes capturar los diferentes niveles de la señal ni usando un pin analógico del arduino.
Hay otros módulos que tienen una salida adicional que toma la señal directa del transistor (o sea antes del comparador) y que sí puedes muestrear con un pin analógico.

Cuando respondí no habia enlace a ningún módulo, asi que supuse el módulo que tiene las dos salidas.
Incluso en el que tiene 1 sola se puede usar la conexión que va al cursor del preset como salida analógica.

Claro, por eso le pregunté que módulo usa.

El preset fija la tensión de referencia del comparador, en cambio se podría tomar del colector del transistor.

Anda, estaba confundido, es verdad. Como tengo varios módulos igual pensaba que la DO era la analógica y sobre decírmelo no lo veía. Al conectarlo al colector del transistor sí que cambiaba pero el rango era muy pequeño y poco preciso.

Tengo otros módulos en que sí tienen la AO pero no consigo hacer que funcione ninguno. He probado varios programas que encuentro hechos por asegurarme y nada, no hay forma de hacerlo funcionar.
O están todos mal o ya no se que puede ser. He cambiado cables, lo he conectado directo sin protoboard...

Hola @russeti
Te envío una referencia , tal vez, ya lo hayas comprado, coméntanos si ha funcionado.
Este, si tiene salidas digital y analógica.
Veras que contiene dos códigos de ejemplo.

Un saludo!! ... :cocktail: ...:cocktail:

KY-038.PDF (96.9 KB)

No sabría decirte, como no has mostrado ninguno de los códigos y ni sabemos que placa controladora estás usando, sería jugar a las adivinanzas. :wink:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.