Go Down

Topic: Fluctuación señal analógica de micrófono (Read 163 times) previous topic - next topic

gatocos

May 16, 2019, 09:24 pm Last Edit: May 20, 2019, 02:39 am by surbyte Reason: Agregado de etiqueta de enlaces
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:

https://es.banggood.com/RobotDyn-Microphone-Sound-Measure-Module-Voice-Sensor-Board-with-Digital-and-Analog-p-1243618.html?rmmds=myorder&cur_warehouse=CN

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:
Code: [Select]

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!!

tauro0221

#1
May 16, 2019, 10:14 pm Last Edit: May 16, 2019, 10:21 pm by tauro0221
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.
https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage#toc1

Adjunto  un link de este forum que explica como usar el comando pwm:
https://www.arduino.cc/reference/en/language/functions/analog-io/analogwrite/

gatocos

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.

tauro0221

#3
May 16, 2019, 11:59 pm Last Edit: May 17, 2019, 04:24 am by tauro0221 Reason: Hilo editado para anadir la funcion de map.
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.

Code: [Select]
{
 int val = analogRead(0);
 valor = map(valor, 0, 1023, 0, 255);
 analogWrite(puerto de salida , valor);
}



surbyte

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

firius2010

#5
May 18, 2019, 12:29 am Last Edit: May 26, 2019, 12:23 am by firius2010

@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


Go Up