
Theremín automático con Arduino

Cuando la música se controla con la mano
¿Te imaginas tocar un instrumento sin tocar ningún botón?
En este proyecto construiremos un Theremín electrónico, un instrumento musical que cambia el sonido según la distancia de tu mano al sensor infrarrojo.
Cuando acerques la mano, sonará una nota grave.
Cuando la alejes, sonará una nota aguda.
El sensor detectará la presencia de la mano y Arduino modificará la frecuencia del zumbador automáticamente.
Objetivo del proyecto
Crear un sistema capaz de:
- Detectar la posición de una mano mediante un sensor infrarrojo.
- Generar sonidos con un zumbador.
- Cambiar las notas musicales automáticamente.
- Mostrar información por el monitor serie.
- Comprender cómo los sensores pueden controlar actuadores.
ODS relacionados
ODS 4: Educación de calidad
Aprendemos programación, electrónica y robótica de forma práctica.
ODS 9: Industria, innovación e infraestructura
Los sensores y actuadores son la base de los sistemas automáticos modernos.
ODS 11: Ciudades y comunidades sostenibles
La automatización permite crear dispositivos inteligentes para mejorar nuestra vida diaria.
¿Qué vamos a aprender?
En este proyecto aprenderemos:
- Qué es un sensor infrarrojo.
- Cómo leer una entrada digital.
- Cómo utilizar un zumbador.
- Cómo generar sonidos con Arduino.
- Cómo usar estructuras condicionales.
- Cómo relacionar sensores con actuadores.
Componentes necesarios
- Arduino o Zum Core.
- Sensor infrarrojo.
- Zumbador.
- Cables de conexión.
Conexiones
Sensor infrarrojo
| Sensor | Arduino |
|---|---|
| S | D2 |
| + | 5V |
| – | GND |
Zumbador
| Zumbador | Arduino |
|---|---|
| S | D3 |
| + | 5V |
| – | GND |
Código Arduino
const int sensorIR = 2;
const int buzzer = 3;
void setup() {
pinMode(sensorIR, INPUT);
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
Serial.println("Theremin iniciado");
}
void loop() {
int estado = digitalRead(sensorIR);
if (estado == LOW) {
Serial.println("Mano detectada");
tone(buzzer, 300);
delay(200);
tone(buzzer, 600);
delay(200);
tone(buzzer, 900);
delay(200);
tone(buzzer, 1200);
delay(200);
}
else {
noTone(buzzer);
Serial.println("Sin deteccion");
}
delay(100);
}
¿Qué ocurre en la simulación?
Situación 1: No hay ninguna mano
El sensor no detecta nada.
- El zumbador permanece apagado.
- No se escucha ningún sonido.
Situación 2: La mano aparece
El sensor detecta la mano.
- El zumbador comienza a sonar.
- Las notas cambian automáticamente.
- Parece un pequeño instrumento musical.
Situación 3: La mano desaparece
El sensor deja de detectar.
- El sonido se detiene.
- El sistema vuelve a esperar.
Explicación del programa
La parte más importante es:
if (estado == LOW)
Esto significa:
- Si el sensor detecta un objeto, ejecuta los sonidos.
Y esta otra:
noTone(buzzer);
Significa:
- Apagar completamente el zumbador cuando no haya detección.
La función:
tone(buzzer, 1200);
genera una nota de 1200 Hz.
Cuanto mayor es el número:
- Más aguda será la nota.
Cuanto menor es el número:
- Más grave será la nota.
Reto 1
Haz que las notas sean más rápidas.
Pista:
delay(100);
en lugar de
delay(200);
Reto 2
Añade un LED que se encienda cuando el sensor detecte la mano.
Reto 3
Haz que el zumbador reproduzca una melodía sencilla.
Reflexión final
Este proyecto demuestra cómo un sensor puede convertirse en los “ojos” de un sistema electrónico y cómo un actuador puede responder generando sonidos.
El sensor detecta.
Arduino procesa la información.
El zumbador produce la música.
Etiqueta:AIDARAC, arduino, automático, robótica, Theremín



