Arduino - Sensor de sonido

El sensor de sonido es capaz de detectar la presencia de sonido en el entorno circundante. Se puede utilizar para crear proyectos que reaccionan al sonido, como luces que se activan al aplauso o un dispensador de comida para mascotas activado por sonido.

En este tutorial, vamos a aprender cómo usar Arduino y un sensor de sonido para detectar el sonido. En detalle, aprenderemos:

sensor de sonido para Arduino

Después, puedes ajustar el código para activar un LED o una luz (a través de un relé) cuando detecta un sonido, o incluso hacer que un servomotor gire.

Acerca del sensor de sonido

El sensor de sonido puede utilizarse para detectar la presencia de sonido en el entorno circundante. Existen dos tipos de módulo de sensor de sonido:

  • Módulo de sensor de sonido digital: proporciona el valor de la señal digital (Encendido/Apagado)
  • Módulo de sensor de sonido analógico: genera tanto el valor de la señal analógica como el de la señal digital

La sensibilidad de la salida digital puede ajustarse mediante un potenciómetro integrado.

Pinout del sensor de sonido digital

El sensor de sonido digital incluye tres pines:

  • Pin VCC: debe conectarse a VCC (3.3 V a 5 V)
  • Pin GND: debe conectarse a GND (0 V)
  • Pin de salida: es un pin de salida: ALTO si no hay sonido y BAJO si se detecta sonido. Este pin debe conectarse al pin de entrada de Arduino.
Pinout del sensor de sonido
image source: diyables.io

El sensor de sonido también tiene un potenciómetro integrado, que se puede usar para ajustar la sensibilidad del sensor. Además, cuenta con dos indicadores LED:

  • Un indicador LED para la alimentación
  • Un indicador LED para el estado del sonido: encendido cuando hay sonido, apagado cuando no hay sonido

Diagrama de pines del sensor de sonido analógico

El sensor de sonido analógico incluye cuatro pines:

  • + pin: debe conectarse a 5V
  • G pin: debe conectarse a GND (0V)
  • DO pin: es un pin de salida digital: ALTO si hay silencio y BAJO si se detecta sonido. Este pin debe conectarse al pin de entrada digital de Arduino.
  • AO pin: es un pin de salida analógica: entrega el valor analógico que indica el nivel de sonido. Este pin debe conectarse al pin de entrada analógica de Arduino.
Pinout del sensor de sonido analógico
image source: diyables.io

El sensor de sonido analógico tiene un práctico potenciómetro integrado que le permite ajustar fácilmente su sensibilidad para la salida digital. Además, viene con dos indicadores LED:

  • Un indicador LED muestra el estado de la alimentación.
  • Otro indicador LED indica el estado del sonido, encendiéndose cuando se detecta sonido y apagándose cuando está en silencio.

Cómo Funciona

El módulo tiene un potenciómetro integrado para ajustar la sensibilidad del sonido.

  • Cuando se detecta el sonido, el pin de salida del sensor está en nivel bajo
  • Cuando no se detecta el sonido, el pin de salida del sensor está en nivel alto

Diagrama de Cableado

Diagrama de cableado del sensor de sonido de Arduino

This image is created using Fritzing. Click to enlarge image

El cableado real:

Conexión del sensor de sonido de Arduino

Cómo programar para el sensor de sonido

  • Inicializa el pin de Arduino al modo de entrada digital usando la función pinMode(). Por ejemplo, el pin 5.
pinMode(5, INPUT);
  • Lee el estado del pin de Arduino utilizando la función digitalRead().
int soundState = digitalRead(5);

Código de Arduino - Detección del sonido

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-sound-sensor */ // Arduino's pin connected to OUT pin of the sound sensor #define SENSOR_PIN 5 int lastState = HIGH; // the previous state from the input pin int currentState; // the current reading from the input pin void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the Arduino's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: currentState = digitalRead(SENSOR_PIN); if (lastState == HIGH && currentState == LOW) Serial.println("The sound has been detected"); else if (lastState == LOW && currentState == HIGH) Serial.println("The sound has disappeared"); // save the the last state lastState = currentState; }

Pasos R\u00e1pidos

  • Copia el código anterior y ábrelo con el IDE de Arduino
  • Haz clic en el botón Subir en el IDE de Arduino para cargar el código en Arduino
  • Aplaude tu mano delante del sensor de sonido
  • Ver el resultado en el Monitor Serial
COM6
Send
The sound has been detected The sound has disappeared The sound has been detected The sound has disappeared
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Por favor, tenga en cuenta que si nota que el LED permanece encendido de forma continua o se apaga incluso cuando hay sonido, puede ajustar el potenciómetro para afinar la sensibilidad del sensor al sonido.

Ahora podemos personalizar el código para activar un LED o una luz cuando se detecta un sonido, o incluso hacer girar un servomotor. Puedes encontrar más información e instrucciones paso a paso en los tutoriales proporcionados al final de este tutorial.

Solución de problemas

Si el sensor de sonido no funciona correctamente, pruebe los siguientes pasos:

  • Reduce las vibraciones: El sensor de sonido también es sensible a vibraciones mecánicas y al ruido del viento. Montar el sensor de sonido sobre una superficie sólida puede ayudar a minimizar estas vibraciones.
  • Considera el rango de detección: Ten en cuenta que este sensor de sonido tiene un rango de detección corto, alrededor de 10 pulgadas. Para obtener lecturas precisas, será necesario emitir un ruido más cercano al sensor de sonido.
  • Verifica la fuente de alimentación: Asegúrate de que la fuente de alimentación esté limpia, ya que el sensor de sonido es sensible al ruido de la fuente de alimentación debido a que es un circuito analógico.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

Referencias de funciones

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!