Como usar un MICROFONO con ARDUINO

Publicado por Loli Diéguez en

¿Cómo puede una placa Arduino capturar sonido? Del mismo modo que tu ordenador captura el sonido: a través de un micrófono.

 

 

En este tutorial de micrófonos con Arduino, veremos cómo funciona un sensor de sonido. Además, crearemos un proyecto sencillo que podrás emplear para cambiar el estado de una salida de Arduino y así poder actuar, por ejemplo, sobre un LED.

 

Microfono con Arduino


 

El micrófono electret

La mayoría de las placas de "sensor de sonido" disponibles cuentan con un tipo específico de micrófono: el micrófono electret. El sensor de sonido Grove presenta este micrófono:

Sensor de sonido - microfono electret

El micrófono electret es un tipo de micrófono de condensador. Los condensadores son esencialmente capacitores y los micrófonos de condensador están formados por un diafragma delgado montado sobre una placa.

Recuerda que un capacitor está formado por dos conductores con un aislante, o dieléctrico, entre ellos. Tanto el diafragma como la placa son conductores.

 

 

Cuanto menor es la distancia entre estos dos conductores, mayor es la capacitancia, dado que el área de superficie de los conductores no cambia.

Composicion de microfono electret

 


Cuando el sonido llega al condensador, el diafragma vibra cambiando la distancia entre los conductores y efectivamente cambia la capacitancia entre el diafragma y la placa. Esta capacitancia se convierte en voltaje con la aplicación de una carga suficiente en el condensador. El voltaje se aumenta a través de un transistor incorporado dentro del micrófono como se muestra en la imagen de arriba.

Ahora los micrófonos de condensador necesitan altos voltajes para mantener esa carga. En cambio, un micrófono electret no necesita altos voltajes porque el diafragma está hecho de un material especial que almacena una carga lo suficientemente alta. Este material, que es el electret, es como un imán permanente pero almacena una carga permanente.

Los cambios de voltaje producidos por el sonido deberían ser suficientes para ser detectados por un Arduino. Esta es la razón por la cual los sensores de sonido a menudo siempre tienen un amplificador operacional IC incluido.

Usando un micrófono Arduino

Dado que la placa del sensor de sonido produce un voltaje cambiante, necesitaremos el convertidor analógico a digital del Arduino para procesar ese voltaje. Aquí hay un sketch que lee el voltaje del sensor de sonido conectado a A0 que luego se muestra en el IDE serial de Arduino.

 

 


int soundPin = A0;
void setup()
{
  Serial.begin(9600);
}
void loop()
{
    long sum = 0;
    for(int i=0; i<100; i++)
    {
        sum += analogRead(soundPin);
    }
    sum = sum/100;
    Serial.println(sum);
    delay(10);
}

 

Aquí está el diagrama de cableado:

 

Conexionado con Arduino de microfono electret

 

La placa del sensor de sonido genera un voltaje con un componente de ruido alta, por lo que debemos tomar una media de cien muestras para ser más precisos. Aun con estas precauciones de numero de muestras, la señal sigue siendo ruidosa como se ve en la grafica del sonido que obtenemos de la salida serial:

 

Grafica de audio captado con microfono electret

 

Esto es de esperar, ya que el sonido nunca puede ser un gráfico de línea recta. Lo que solo podemos deducir de estos datos es el valor máximo cuando hay un sonido fuerte.

Por ejemplo, los valores oscilan entre 300 y 500+ según el gráfico anterior. Pero con una palmada el resultado es el siguiente:

 

Grafica de sonido captando palmada con microfono y arduino

Sketch Arduino para interruptor por palmada

Ahora puedes usar estos datos para crear un simple interruptor por medio de una palmada. El código seria:

 

 

int soundPin = A0;
int LED = 13;
void setup()
{
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
}
void loop()
{
    long sum = 0;
    for(int i=0; i<100; i++)
    {
       sum += analogRead(soundPin);
    }
    sum = sum/100;
    if(sum > 600){
      digitalWrite(LED, HIGH);
    }else{
      digitalWrite(LED, LOW);
    }
    Serial.println(sum);
    delay(10);
}
Agrega un LED para que se encienda a la vez que el sensor de audio capte un sonido lo suficientemente fuerte, como una palmada pero que permanezca apagado si no aplaudes.
Espero que después de este articulo puedas crear increíbles proyectos uniendo sonido y arduino.

sigue leyendo


Compartir esta publicación



← Publicación más antigua Publicación más reciente →