Fluctuación señal analógica de micrófono

Hola!

Primero de todo, soy nuevo por el foro y en el mundo Arduino, llevo muy poco programando pero hago lo que puedo...

Me compre un Arduino nano y una tira de leds WS2812, he ido practicando bastante para familiarizarme con el lenguaje y para aprender por supuesto, también me compre un micro, este exactamente:

Mi idea era hacer que los leds se encendiesen al detectar sonido, una especie de vumeter, cuanto mas sonido mas leds de la tira encendidos, el problema es la señal analógica del micro, en completo silencio me fluctúa desde 0 hasta 400 y pico, he intentado contrarrestarlo con la función map() pero no consigo lo que quiero, lo tengo conectado GND a GND, VCC a 5V y AO a A1 (micro/arduino), el código que estoy utilizando para ver la lectura analógica del micro es muy simple:

void loop() {

  vol=analogRead(A1);
  Serial.write("vol=");
  Serial.println(vol);
}

Que estoy haciendo mal con el micro? esta roto? lo tiro y me compro otro mejor? cual?

A ver si alguien me puede ayudar

Muchas gracias!!

Hi,
Aqui el problema es que no estas convertiendo los counts a voltaje. Para convertirlos a voltaje tienes que hacer lo siguente. volume = analogRead(A1)* (4.98/1023); Prueba a ver si te trabaja. Adjunto un link con tutoria que te explica como convertir counts a voltaje.El segundo link es una tutoria que explica como prender los LEDS usando el comando pwm. Suerte

Adjunto un link de este forum que explica como convertir counts a voltaje.

Adjunto un link de este forum que explica como usar el comando pwm:

Gracias por tu respuesta!
Metiendo lo que me has dicho sigo con fluctuaciones, pero lo que entiendo por tu contestación es que conviertes la señal a digital, pero yo quiero la señal en analógico, utilizo la librería de adafruit para controlar la tira de leds, y lo que hago es convertir el rango del micrófono (0-1024) a un rango de (0-30), con la función map(), que es el número de leds que tengo en la tira.

Hi,
Yo me deje llevar por el sketch que tu bajastes. En el tu no demuestras que usas la funcion de map y la libreria de adafruit. Por lo tanto te aconsejo que entonces bajes el sketch completo que estas usando para que se te pueda ayudar. En el lo que tu haces es leer la senal analog y usas esta en counts para hacer un output. No veo donde usas la funcion de map y la libreria de adafruit.

Hilo editado para anadir la funcion de map.
Hize una busqueda y encontre posiblemente al parecer lo que quires hacer. Como se usa la funcion map Esta se usa para convertir los counts de la lectura a pwm. Es lo que yo entiendo. No se tambien si quires es controlar la intensidad de los leds o prender 30 leds.

{
 int val = analogRead(0);
 valor = map(valor, 0, 1023, 0, 255);
 analogWrite(puerto de salida , valor);
}

Te envié privado para que modifiques tus enlaces. POr favor hazlo!!

@gatocos me da curiosidad ver la forma de onda que estas obteniendo, ¿puedes ponerlo a leer un rato copiar los datos meterlos en un txt y subirlo?. Quiero ver las fluctuaciones que tan frecuentes son.

Ademas tienes forma de hacer una prueba generando un tono a una frecuencia baja, captas la señal con el microfono y arduino nuevamente tomas los datos y graficas para ver si obtienes lo que quieres? tan solo sería para ver si funciona el microfono y en caso dado a que niveles de sonido se satura