
Control del volumen con sensor de sonido y Arduino: Tutorial paso a paso
En este tutorial vamos a ver cómo podemos usar un sensor de sonido con Arduino. Con este proyecto tendremos control del volumen de una canción ya que se iluminará un LED u otra dependiendo del volumen.
Pero antes de ponernos manos a la obra, tenemos que aprender unos conceptos básicos.
¿Para qué sirve el sensor de sonido?
El funcionamiento del sensor es bastante simple, cuando el sensor detecta sonido por el micrófono, pasa por un amplificador y se transforma en una señal analógica que lo envía a la placa Arduino, esta señal analógica tiene un rango que normalmente se encuentra entre los 0 hasta los 1023.
El sensor lleva incorporado un pequeño potenciómetro con el que podemos ajustar la entrada de sonido, de una manera más simple, con esto podemos ajustar lo sensible que queramos que sea el sensor.
Componentes necesarios para el control del volumen
Todos los componentes están disponibles en shop.flexbot.es
- Placa Arduino (Para este tutorial usaremos Arduino MEGA) – Ver en la tienda
- Sensor de sonido – Ver en la tienda
- LEDs diferentes colores (x1 Verde, x3 Amarillo y x1 Rojo) – Ver en la tienda
- Resistencias de 220 Ω – Ver en la tienda
- Cables de puente – Ver en tienda
- Protoboard – Ver en tienda
Esquema del sensor de sonido
El sensor de sonido solo tiene tres pines de salida, para poder conectarlos a la placa, los tendremos que conectar de la siguiente manera:
- VCC -> 5v
- GND -> GND
- OUT -> A0
El circuito tendría que verse de la siguiente manera:
Esquema de conexión de los LEDs
Para este proyecto tenemos que conectar 5 LEDs a la placa de Arduino, cada led representa un valor de volumen. Los LEDs ocupan desde el pin D2 hasta el pin D6.
Para conectar el LED hay que conectar el ánodo (la pata larga del LED), a la punta de una resistencia y la otra punta la conectaremos a un pin digital. El cátodo (la pata mas corta) ira a un pin GND.
El esquema total del circuito se vería tal que así:
Hora de programar el control del volumen
Este es el código que tenemos que reproducir, para este proyecto no necesitamos instalar ninguna librería.
#define MIC A0 // Declaramos el sensor
int sig = 0; // Decalaramos una variable en la que volcaremos los datos que nos proporcione el sensor
void setup() {
// Declaramos los led que tengamos como OUTPUT
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
// Declaramos el puerto del monitor serie
Serial.begin(9600);
}
// Hacemos una función para controlar los LED
void led() {
sig = analogRead(MIC); // Leemos lo que mide el sensor de sonido
Serial.println(sig); // Lo imprimimos por el monitor serie para ver que valores esta marcando el sensor
// If para controlar los valores, si supera cierto valor, encendemos un pin
// hay un if por cada led que hemos puesto cada uno tiene su valor para que se encienda.
if (sig>34){ digitalWrite(2, HIGH);} else{ digitalWrite(2, LOW);}
if (sig>255){ digitalWrite(3, HIGH);} else {digitalWrite(3, LOW);}
if (sig>510){digitalWrite(4, HIGH);} else {digitalWrite(4, LOW);}
if (sig>765){digitalWrite(5, HIGH);} else {digitalWrite(5, LOW);}
if (sig>1022){digitalWrite(6, HIGH);} else {digitalWrite(6, LOW);}
}
void loop() {
led(); // Llamamos a la función led
}

Yair
Hola! Gran tutorial! Una duda.. como coloco el sensor de sonido en Tinkercad? Gracias!!
Norb
Hola, como lo haces para llegar a 1022? El sensor marca 50 en normal y màximo 170 con mucho sonido. Gracias.