El sensor de sonido KY-038

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.

    Img_3_4 Una Protoboard.
    componente Un diodo LED.
    sensor sonido s4a
     Img_3_5  Una resistencia de 330 Ohmios.
    Img_3_6 Algunos 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] [/three-fourth]

    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 para el arduino 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(A0) ;
      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
  •  

    Deja una respuesta