Go Down

Topic: Programación para dimmer de tira de leds con micrófono  (Read 408 times) previous topic - next topic

m4nuel-cc

Buen día,

Me encuentro trabajando en un proyecto en el cual quiero que la intensidad del brillo de una tira de led blanca (12V y GND) se modifique en función al sonido captado por un módulo amplificador con micrófono (MAX 4466), la tira de LED enciende pero el brillo no varía demasiado con el sonido.

A continuación enlisto los componentes que estoy utilizando:
Módulo amplificador con micrófono MAX4466
Tira Led Blanca 1 metro -  12V (Cuenta con dos pines: 12V+ y GND)
Fuente de alimentación 12V 1 A
Transistor TIP120
Resistencia de 1k Ohm
Arduino UNO R3

Este es el esquema del proyecto
Nota: El transistor, la resisencia y la tira de led son únicamente de referencia, los componentes reales se encuentran en la lista anterior.




Y este es el código que se encuentra cargado en el arduino.

Code: [Select]
int valorMic=0;
float luz=0;

void setup(){
               pinMode(9,OUTPUT); // Declarando el pin 9 para la base del transistor TIP 120
}

void loop(){
        valorMic=analogRead(2);  //Lectura de la señal del micrófono
       luz=valorMic*(255.0/1023.0); // Cálculo para salida PWM
        analogWrite(9,luz);       //Envia señal a la base del transistor
    }




Agradecería cualquier ayuda o guía respecto a Hardware o al código de programación.

Saludos y muchas gracias.






surbyte

En principio lo que hiciste esta bien.

El el mic entre 0 y 1023, lo divides por ese valor y lo multiplicas por el máximo posible de la salida PWM.
Si no funciona es que tu hardware esta mal.


m4nuel-cc

Muchas gracias por la respuesta, intentaré con otro módulo igual para descartar hardware dañado, otra consulta, ¿El módulo con micrófono si es adecuado para lo que estoy buscando?

De nuevo muchas gracias, saludos.

surbyte

El módulo micrófono tiene dos salidas, una dice AOUT y la otra DOUT, espero que tengas el que tiene las dos porque si solo tienes el que se ajusta con el preset entonces obtienes una salida digital cuando se supera el umbral prefijado por dicho preset.


m4nuel-cc

#4
Aug 02, 2020, 06:34 am Last Edit: Aug 12, 2020, 09:51 pm by surbyte Reason: No repitas lo que se lee arriba.
De nueva cuenta, muchas gracias por tu respuesta.

Tengo estos dos módulos:

KY-037,  de acuerdo a lo que había leído y visto en tutoriales, este es módulo que funciona como tú me comentas, ya que con el preset se fija un umbra y una vez que es superado envía una señal por la salida analógica, este módulo cuenta con los 4 pines que comentas AO,G, + y DO.


Módulo MAX 4466: cuenta con 3 pines, OUT, GND y VCC. Asimismo, este cuenta con un preset el cual sirve para fijar una ganancia.

El micrófono que tenía conectado al circuito era el MAX4466, lo sustituiré con el módulo KY-37.

Muchas gracias.

surbyte


m4nuel-cc

Podes usar tranquilamente el MAX4466
Muchas gracias por el apoyo, me comentaron lo siguiente, no sé si tú me podrías ayudar con esto:

Necesitas calcular la amplitud AC del micrófono, ignorando el componente DC, y basar la salida PWM en ello.


surbyte

Solo es buscar un poco en google o en este mismo foro. Google: Arduino Max4486 library y obtuve esto

https://learn.adafruit.com/adafruit-microphone-amplifier-breakout/measuring-sound-levels

Por cierto, el módulo ya tiene la corrección necesaria para quitar la componente DC de 2.5V de lo contrario no podrías leer o medir señales de audio porque éstas son una mezcla de componentes AC que tienen valores ± positivos y negativos. Al introducir la componente de 2.5 se reduce el rango dinámico a la mitad pero te permite leer todo lo que este entre 0 y 511 negativo y 512 y 1023 positivo.
Cuando lees 512 digamos que es una señal nula sin audio.

Los ejemplos que te he puesto deberían ser suficientes para comenzar.
Justamente lo que detectan es valor pico de la señal de audio que es básicamente quedarse con el valor máximo de la misma cada X milisegundos.

m4nuel-cc

#8
Aug 04, 2020, 08:02 pm Last Edit: Aug 12, 2020, 09:51 pm by surbyte Reason: No repitas lo que se lee arriba.
Muchísimas gracias, me sirvió bastante, tanto lo que me comentaste como lo que encontré en el post compartido, creo que tengo problemas de hardware con el módulo MAX4466 ya que al usar el código mostrado en la página de adafruit y realizar las conexiones, siempre arroja lecturas de 5V, sin importar si hay diferentes niveles de ruido, y el ajuste de ganancia en el preset.

De nuevo muchas gracias, volveré a pedir otro módulo para descartar por completo la falla en el hardware.

Saludos

surbyte


m4nuel-cc

#10
Aug 12, 2020, 04:25 am Last Edit: Aug 12, 2020, 09:51 pm by surbyte Reason: No repitas lo que se lee arriba.
Hola @surbyte

Muchísimas gracias por todo tu apoyo, el problema era que el módulo MAX4466 estaba dañado, ya solicité la garantía y me mandaron uno nuevo, lo probé con el mismo código y el mismo hardware y funcionó a la perfección, ahora me queda hacer lecturas para mapear un ruido de fondo base para que apartir de ese punto todo lo demás se interprete como una señal de interés.


De nuevo muchas gracias y saludos desde México.

Go Up