The Circuit Maker
Arduino10 min lectura

Cómo Conectar el Sensor de Sonido KY-037 usando Arduino

Tutorial on connecting the KY-037 sound sensor to Arduino with digital and analog output examples, breadboard diagrams, and code.

·

En este tutorial, vas a aprender cómo conectar el sensor de sonido KY-037 usando un Arduino. Repasaremos los componentes necesarios para este tutorial y veremos cómo podemos aprovechar el sensor de sonido para activar otras funcionalidades.

Este tutorial está diseñado para ser amigable para principiantes con explicaciones detalladas guiadas con diagramas y ejemplos para ayudarte a entender el sensor de sonido KY-037, mostrándote cómo podemos encender luces LED con Arduino cada vez que el sensor de sonido detecta un sonido y transmite señales digitales o analógicas al Arduino.

Qué Materiales Necesitarás

Hardware

Esta es la lista de todos los componentes necesarios en este tutorial.

Juego de Luces LED de 5mmx 1
Protoboardx 1
Juego de Cables Puentex 1
Arduino Uno R3x 1
Cable USB de Sincronización de Datos Arduino UNOx 1
Juego de Resistencias de 220 Ohmx 1
Sensor de Sonido KY-037x 1

Sin embargo, si te gusta aprender electrónica y Arduino, recomiendo obtener el siguiente kit de inicio que tiene todos los elementos para este tutorial.

ELEGOO UNO R3 Kit de Inicio Más Completo de Proyecto con Tutorial Compatible con Arduino IDE (63 Artículos)x1

Nota: Este kit usa ELEGOO Uno R3 en lugar de Arduino Uno R3, que es una réplica de Arduino Uno R3 y es compatible con Arduino IDE.

Software

Arduino IDE

¿Qué es el componente KY-037?

El KY-037 es un módulo sensor de sonido con micrófono que envía una señal analógica y digital cada vez que el sensor detecta un sonido.

Especificaciones del KY-037

El KY-037 tiene las siguientes partes:

  • Pin AO o Salida Analógica: Emite una señal analógica basada en el sonido detectado.
  • Pin DO o Salida Digital: Emite una señal digital basada en el sonido detectado en comparación con el nivel de referencia.
  • Pin G o Tierra
  • + o Voltaje de Entrada que puede estar entre 3.3V y 5V
  • LED 1: Muestra que el sensor está alimentado con voltaje
  • LED 2: Muestra que se ha detectado un sonido.
  • Potenciómetro: Ajusta el valor de resistencia o nivel de referencia.
Partes del KY-037
Partes del KY-037

Ajustar la sensibilidad del sensor de sonido KY-037

Para ajustar la sensibilidad del KY-037, localiza el potenciómetro y usa un destornillador para:

  • Girar el potenciómetro en sentido horario para aumentar la sensibilidad. Por lo tanto, el valor de resistencia en el potenciómetro disminuirá.
  • Girar el potenciómetro en sentido antihorario para reducir la sensibilidad. Por lo tanto, el valor de resistencia en el potenciómetro aumentará.
Ajustar la sensibilidad del sensor de sonido KY-037
Ajustar la sensibilidad del sensor de sonido KY-037

Conectar el sensor de sonido KY-037 usando salida digital para encender luces LED usando Arduino

En este primer tutorial, vamos a construir un circuito para encender luces LED basándose en la señal digital emitida por el KY-037.

Diagrama de Protoboard

Comencemos construyendo el circuito basándose en el siguiente diagrama.

Diagrama de Protoboard - Sensor de Sonido KY-037 conectado a Arduino usando salida digital
Diagrama de Protoboard - Sensor de Sonido KY-037 conectado a Arduino usando salida digital

Nota: Desafortunadamente, no pudimos encontrar una imagen del sensor de sonido con 4 pines al diseñar el diagrama. Sin embargo, observa que los pines del KY-037 usados en este circuito son:

  • +: pin que recibe el voltaje para alimentar el sensor. En este circuito, el pin 5V de Arduino está proporcionando la fuente de alimentación
  • G: pin conectado a tierra
  • DO: pin conectado al pin digital 2 de Arduino
  • AO: pin NO usado en este circuito

Finalmente, los pines digitales 3 - 9 de Arduino están cada uno conectado a una resistencia de 220Ω para reducir el voltaje para prevenir quemar la luz LED conectada.

Subir el Código

Si no has instalado Arduino IDE en tu computadora, descárgalo e instala el software.

Una vez instalado, abre el software y crea un nuevo proyecto haciendo clic en Archivo en el menú. Luego, selecciona la opción Nuevo.

Ahora, copia el siguiente código y pégalo en el proyecto Arduino IDE. Dentro de Arduino IDE, haz clic en la opción Verificar para asegurarte de que no hay errores en el código.

/*
    Cómo Usar el Sensor de Sonido KY-037 usando señal digital para Encender LED usando Arduino 
    
    Para más guías y tutoriales: https://www.thecircuitmaker.com
*/

int digitalPin = 2;

void setup(){
  Serial.begin(9600);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(digitalPin, INPUT);
}

void loop(){
  int digital = digitalRead(digitalPin);

  if (digital == HIGH )
  {
    digitalWrite (3, HIGH);
    digitalWrite (4, HIGH);
    digitalWrite (5, HIGH);
    digitalWrite (6, HIGH);
    digitalWrite (7, HIGH);
    digitalWrite (8, HIGH);
    digitalWrite (9, HIGH);
  }
  else
  {
    digitalWrite (3, LOW);
    digitalWrite (4, LOW);
    digitalWrite (5, LOW);
    digitalWrite (6, LOW);
    digitalWrite (7, LOW);
    digitalWrite (8, LOW);
    digitalWrite (9, LOW);
   }
}

Finalmente, sube el código a Arduino. Para hacerlo, asegúrate de tener el Arduino conectado a tu computadora usando el Cable USB de Sincronización de Datos Arduino UNO. Luego, ve al Arduino IDE y haz clic en la opción del menú Programa y selecciona la opción Subir.

Entendiendo el Código

Primero, definimos una variable llamada digitalPin para almacenar el número del pin digital que recibe la señal digital del sensor de sonido.

int digitalPin = 2;

En la función setup del código, configuramos el digitalPin como modo INPUT usando la función pinMode. En Arduino, puedes configurar diferentes modos de pin: INPUT, OUTPUT, o INPUT_PULLUP. Usamos el modo INPUT para configurar el digitalPin para recibir señales.

También, observa cómo configuramos los pines 3 hasta 9 como OUTPUT para que podamos emitir un voltaje a las luces LED más tarde.

void setup(){
  Serial.begin(9600);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(digitalPin, INPUT);
}

Finalmente, en la sección loop, programamos la lógica que enciende y apaga la luz LED basándose en el valor de la señal digital recibida del sensor de sonido.

void loop(){
  int digital = digitalRead(digitalPin);

  if (digital == HIGH )
  {
    digitalWrite (3, HIGH);
    digitalWrite (4, HIGH);
    digitalWrite (5, HIGH);
    digitalWrite (6, HIGH);
    digitalWrite (7, HIGH);
    digitalWrite (8, HIGH);
    digitalWrite (9, HIGH);
  }
  else
  {
    digitalWrite (3, LOW);
    digitalWrite (4, LOW);
    digitalWrite (5, LOW);
    digitalWrite (6, LOW);
    digitalWrite (7, LOW);
    digitalWrite (8, LOW);
    digitalWrite (9, LOW);
   }
}

La función digitalWrite determina si emitir 0V o 5V desde un pin específico.

  • Cuando usamos la función digitalWrite usando HIGH, significa que el voltaje que sale de un número de pin específico será 5V.
  • Cuando usamos la función digitalWrite usando LOW, significa que el voltaje que sale de un número de pin específico será 0V.

Resultado

Dependiendo del valor de resistencia configurado en el potenciómetro, las luces LED se encenderán o apagarán automáticamente. Si las luces LED están encendidas, disminuye la sensibilidad del sensor ajustando el potenciómetro hasta que las luces LED se apaguen.

Una vez que la sensibilidad del sensor esté ajustada, siéntete libre de hacer ruido cerca del micrófono del KY-037 para ver si las luces LED comienzan a parpadear. En nuestro caso, reprodujimos música cerca del circuito para ver cómo las luces LED se encienden y apagan basándose en los ritmos de una canción, y los resultados variaron según la canción que reprodujimos. Afortunadamente, encontramos una buena canción, y con un poco de ajuste de sensibilidad del sensor de sonido, obtuvimos buenos resultados, que puedes ver en el siguiente video.

Conectar el sensor de sonido KY-037 usando salida analógica para encender luces LED usando Arduino

En este segundo tutorial, vamos a construir un circuito similar para encender y apagar luces LED usando el sensor de sonido KY-037. En este caso, vamos a usar la salida analógica del KY-037.

Diagrama de Protoboard

Revisa el siguiente diagrama para construir el circuito. Si construiste el circuito donde el sensor KY-037 usa la salida digital, encontrarás que casi todas las conexiones permanecen iguales.

Diagrama de Protoboard - Sensor de Sonido KY-037 conectado a Arduino usando salida analógica
Diagrama de Protoboard - Sensor de Sonido KY-037 conectado a Arduino usando salida analógica

Nota: Desafortunadamente, no pudimos encontrar una imagen del sensor de sonido con 4 pines al diseñar el diagrama. Sin embargo, observa que los pines del KY-037 usados en este circuito son:

  • +: pin que recibe el voltaje para alimentar el sensor. En este circuito, el pin 5V de Arduino está proporcionando la fuente de alimentación
  • G: pin conectado a tierra
  • DO: pin NO usado en este circuito
  • AO: pin conectado al pin analógico 5 de Arduino

Finalmente, los pines digitales 3 - 9 de Arduino están cada uno conectado a una resistencia de 220Ω y una luz LED.

Subir el Código

Ahora, copia el siguiente código y pégalo en el proyecto Arduino IDE. Dentro de Arduino IDE, haz clic en la opción Verificar para asegurarte de que no hay errores en el código.

/*
    Cómo Usar el Sensor de Sonido KY-037 usando señal analógica para Encender LED usando Arduino 
    
    Para más guías y tutoriales: https://www.thecircuitmaker.com
*/

int analogPin = A5;

void setup(){
  Serial.begin(9600);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(analogPin, INPUT);
}

void loop(){
  int analog = analogRead(analogPin);
  Serial.println(analog);
  
  if (analog >= 500)
  {
    digitalWrite (3, HIGH);
    digitalWrite (4, HIGH);
    digitalWrite (5, HIGH);
    digitalWrite (6, HIGH);
    digitalWrite (7, HIGH);
    digitalWrite (8, HIGH);
    digitalWrite (9, HIGH);
  }
  else
  {
    digitalWrite (3, LOW);
    digitalWrite (4, LOW);
    digitalWrite (5, LOW);
    digitalWrite (6, LOW);
    digitalWrite (7, LOW);
    digitalWrite (8, LOW);
    digitalWrite (9, LOW);
  }
}

Después de verificar que no hay errores, sube el código a Arduino. Para hacerlo, asegúrate de tener el Arduino conectado a tu computadora usando el Cable USB de Sincronización de Datos Arduino UNO. Luego, ve al Arduino IDE y haz clic en la opción del menú Programa y selecciona la opción Subir.

Entendiendo el Código

El código es muy similar al código usado para conectar las luces LED basándose en la señal digital emitida por el sensor de sonido. En este caso, estamos definiendo la variable analogPin para almacenar el valor del pin analógico.

Luego, dentro de la función setup, definimos el analogPin con un modo de pin de INPUT.

Finalmente, en la sección loop, leemos el valor analógico del analogPin usando la función analogRead y lo comparamos contra un valor de referencia que determina si encender o apagar las luces LED.

Observa que imprimimos el valor analógico usando Serial.println(analog);. De esta manera, cada vez que subimos el código a Arduino, podemos verificar los registros del valor emitido por la salida analógica del sensor de sonido cuando no hay sonido.

Para verificar los registros, ve al menú superior de Arduino IDE, selecciona Herramientas. Luego, haz clic en Monitor Serie. Asegúrate de hacer esto cuando Arduino esté conectado a la computadora y el código esté subido. Inmediatamente verás números mostrados.

Mientras ajustas el potenciómetro del KY-037, estos valores analógicos cambiarán. Ajusta el potenciómetro hasta que veas que los números están por debajo del número de referencia usado en el código, que es 500.

Conclusión

En este tutorial, aprendiste sobre el sensor de sonido KY-037 y cómo conectarlo a Arduino ya sea que uses el pin digital o el pin analógico para recibir señales del sensor. Mientras que el resultado final del circuito fue encender y apagar luces LED basándose en el sensor de sonido, ahora puedes obtener una mejor idea de cómo dispositivos, como cámaras, pueden enviar notificaciones de alerta basándose en la detección de sonido.

¿Te gustó este artículo?

Espero que este artículo no solo haya sido útil sino también educativo. Si te gustó, comparte este artículo con amigos que estén interesados en electrónica y disfruten haciendo proyectos divertidos.

Si tienes alguna duda, pregunta, o encuentras problemas mientras sigues este tutorial, no dudes en dejar un comentario en la sección de abajo.

Ten en cuenta que los comentarios se mantienen para moderación para prevenir spam.