bclose

El sensor de sonido KY-038

Utilizando el sensor de sonido para encender un LED y para leer sus medidas

Objetivos

 

 

    • Presentar el sensor de sonido KY-038.
    • Utilizar el pin digital D0 del sensor.
    • Mostrar las lecturas del sensor utilizando el pin analógico A0 del sensor.
 

Material requerido.

ArduinoUNO

Arduino Uno o compatible y con el firmware para S4A cargado.

Un PC con el entorno S4A correctamente instalado y configurado.

Img_3_4Una Protoboard.
componenteUn diodo LED.
sensor sonido s4a Un sensor de sonido KY-038 o similar.
 Img_3_5 Una resistencia de 330 Ohmios.
Img_3_6Algunos cables de Protoboard.

EL SENSOR DE SONYDO KY-038

 

Este tipo de sensor tiene montura Keyes para facilitarnos el montaje.

sensor sonido elementos

En la parte de la izquierda vemos lo pines de conexión:

 
  • En el centro tenemos la conexión a 5V y a GND (+ y G).
  • D0 es una salida digital que actúa a modo de comparador. Si el sonido captado por el micrófono supera un determinado nivel se pone a HIGH.
  • A0 es una salida analógica que nos da un valor entre 0 y 1023 en función del volumen del sonido.[/fancy-ul] 

Además tenemos dos LEDs, uno que nos indica si hay alimentación en el sensor y otro que se ilumina si D0 está a HIGH.

El ajuste de sensibilidad del micrófono lo hacemos mediante un potenciómetro que tendremos que girar con un destornillador plano.

 

CIRCUITO DE ILUMINACIÓN ACTIVADO POR SONIDO

 

Primero vamos a usar la salida digital D0 como señal para encender un LED, de forma que cuando demos una palmada, un silbido o hagamos algún ruido un poco alto, se encienda o se apague un LED.

Sólo necesitamos conectar el pin D0 y los dos pines de alimentación, tal como se ve en el diagrama electrónico y el montaje en la protoboard:

diagrama ledky-038 montaje led ky-038

Si hemos conectado bien el sensor, se debería iluminar el LED de alimentación. El de salida digital accionada puede o no estar encendido.

 

AJUSTANDO EL LÍMITE DE DISPARO

 

Esta es seguramente la parte más complicada de esta sesión. Para ajustar el límite de disparo lo que hacemos es girar el potenciómetro con un destornillador. Tenemos que dejarlo de tal forma que el LED que marca si está accionada la salida digital esté apagado, pero lo más próximo posible al límite en el que se enciende.

 
  • Si lo ajustamos mal y el LED se está encendido, no detectaremos ningún cambio y no podremos reaccionar a ningún estímulo sonoro.
  • Si lo ajustamos de forma que esté apagado pero demasiado lejos del límite en el que se enciende, habrá que llamar al increíble Hulk para que dé una palmada por nosotros. 

 

PROGRAMANDO EL SENSOR

 

El programa para controlarlo es muy sencillo y es el mismo que hemos utilizado varias veces para controlar un interruptor. La diferencia es que en vez de utilizar un pulsador, si el sensor detecta un sonido por encima del límite enviará una señal que recogeremos en la entrada digital 2.

int LED = 13 ; 
int sensor = 6 ;
bool estado = false ;

void setup()
{
  pinMode( LED, OUTPUT) ;
  pinMode( sensor , INPUT_PULLUP) ;
  digitalWrite(LED , LOW) ; // Apagamos el LED al empezar
}

void loop()
{
  bool  valor =  digitalRead(sensor) ; //leemos el estado del sensor
  if ( valor == true ) //Si está activada la salida D0
  {
    estado = ! estado ;                       // cambiamos el estado del LED
    digitalWrite(LED, estado) ;            // escribimos el nuevo valor
    delay (1000);
  }
}
 
  • Si no sois capaces de encender el LED de una palmada, probad a pegar un silbido, un soplido o a hablar cerca del micrófono. 
 

Podéis descargar el programa completo aquí: Sensor_sonido_D0.

 

UTILIZANDO EL PIN A0 PARA LEER LAS MEDIDAS DEL SENSOR

 

Como hemos explicado al principio, el pin A0 nos devuelve un valor entre 0 y 1023 en función del volumen del sonido que esté registrando.

Las conexiones serían las mismas pero conectando la salida A0 del sensor a cualquier entrada analógica del Arduino. Podéis desconectar la salida D0 o dejarla conectada y seguir usándola. El potenciómetro del sensor serviría en este caso para fijar la sensibilidad del sensor.

diagrama electrónico ky-038 a0 montaje ky-038 a0

El programa para mostrar las medidas del sensor en el monitor serie sería muy sencillito y ya lo hemos utilizado varias veces:

void setup()
{
  Serial.begin(9600);    // Iniciamos la puerta serie
}

void loop()
{
  int Lectura = analogRead(A5) ;
  Serial.println( Lectura);
  delay(200) ;
}
monitor serie sonido ky 038

 

RESUMEN DE LA SESIÓN

 

En esta sesión hemos aprendido varias cosas importantes:

 
  • Cómo funciona el sensor de sonido KY-038 y a utilizar tanto su salida digital como analógica.
  • Podemos interaccionar con nuestro Arduino a través del sonido.