ESP32 - Sensor de Sonido

El sensor de sonido tiene la capacidad de detectar la presencia de sonido en su entorno. Se puede utilizar para crear proyectos modernos que responden al sonido, como luces que se activan con un aplauso o un alimentador para mascotas que responde al sonido.

En este tutorial, aprenderemos a usar el ESP32 y un sensor de sonido para detectar sonido. Profundizaremos en lo siguiente:

Sensor de sonido para ESP32

A continuación, tienes la flexibilidad de modificar el código para activar un LED o una luz (utilizando un relé) al detectar sonido, o incluso habilitar un servomotor para que gire.

Acerca del sensor de sonido

El sensor de sonido se puede utilizar para detectar el 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 (ON/OFF)
  • Módulo de sensor de sonido analógico: proporciona tanto el valor de la señal analógica como el valor de la señal digital

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

Esquema de pines 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 OUT: es un pin de salida: ALTO si está en silencio y BAJO si se detecta sonido. Este pin debe conectarse al pin de entrada del ESP32.
Pinout del sensor de sonido
image source: diyables.io

El sensor de sonido cuenta con un práctico potenciómetro integrado que te permite ajustar fácilmente su sensibilidad. 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 el sonido y apagándose cuando no hay sonido.

Disposición 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 está en silencio y BAJO si se detecta sonido. Este pin debe conectarse al pin de entrada digital del ESP32.
  • 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 del ESP32.
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 te 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 eléctrica.
  • 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 incluye un potenciómetro integrado y práctico que le permite ajustar la sensibilidad del sonido. Así es como se comporta la salida del pin del sensor:

  • Cuando se detecta un sonido, el pin de salida se establece en BAJO.
  • Cuando no se detecta un sonido, el pin de salida se establece en ALTO.

Diagrama de Cableado

Diagrama de cableado del sensor de sonido ESP32

This image is created using Fritzing. Click to enlarge image

Si no sabe c\u00f3mo alimentar ESP32 y otros componentes, encuentre instrucciones en el siguiente tutorial: C\u00f3mo alimentar ESP32.

Cómo conectar el ESP32 y un sensor de sonido

Cómo programar para sensor de sonido

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

Código ESP32 - Detección del sonido

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-sound-sensor */ #define SENSOR_PIN 18 // ESP32 pin GPIO18 connected to the OUT pin of the sound sensor 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 ESP32's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the ESP32's 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

  • Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
  • Copia el código anterior y ábrelo con el IDE de Arduino.
  • Haz clic en el botón Subir del IDE de Arduino para cargar el código al ESP32.
  • Aplaude tu mano frente al sensor de sonido.
  • Ve 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 estado del LED permanece constantemente encendido o apagado, incluso cuando hay sonido presente, podría necesitar ajustar el potenciómetro para afinar la sensibilidad al sonido del sensor.

Ahora tenemos la libertad de personalizar el código y hacer que se active un LED o una luz cuando se detecta sonido. También podemos hacer que un servomotor gire según la entrada de sonido. Para una guía más detallada y instrucciones paso a paso, puedes consultar los tutoriales proporcionados al final de este tutorial.

Solución de problemas

Si encuentra algún problema con el funcionamiento del sensor de sonido, por favor considere los siguientes pasos de solución de problemas:

  • Reduce las vibraciones: Las vibraciones mecánicas y el ruido del viento pueden afectar el rendimiento del sensor de sonido. Para reducir estas perturbaciones, intenta montar el sensor de sonido sobre una superficie estable.
  • Considera el alcance de detección: Ten en cuenta que este sensor de sonido en particular tiene un alcance de detección limitado de aproximadamente 10 pulgadas. Para lecturas precisas, intenta producir sonido más cerca del sensor.
  • Verifica la fuente de alimentación: Asegúrate de que la fuente de alimentación esté limpia y libre de ruido, ya que el sensor de sonido es sensible a interferencias de la fuente de alimentación debido a su naturaleza analógica.

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!