Ir al contenido
← Volver a Formación Arduino Principiante

07. Mini piano / generador de tonos

Cuatro pulsadores que tocan notas distintas en un zumbador pasivo. Aprende a generar frecuencias con tone() y el concepto de nota musical.

Dificultad: Principiante · Tiempo: 45 min · Cerebro: Arduino Uno

🧰 Lista de materiales

Arduino Uno R3 (ATmega328P)
Arduino Uno R3 (ATmega328P)
Genera las frecuencias
sin foto
Zumbador pasivo 12 mm
Emite el sonido (controlable por frecuencia)
sin foto
Pulsador táctil 12×12 mm
Teclas del piano (×4)
Breadboard 830 puntos
Breadboard 830 puntos
Montaje

🎯 Qué vas a aprender

La diferencia clave entre un zumbador activo (suena a una sola nota al darle 5 V) y uno pasivo (necesita que tú generes la frecuencia). Usarás tone() para producir notas musicales y leerás varios pulsadores a la vez.

📚 Teoría: frecuencia = nota

Un sonido es una vibración a cierta frecuencia (en hercios, Hz). La nota La central son 440 Hz; el Do, 262 Hz. La función tone(pin, frecuencia) hace vibrar el zumbador pasivo a la frecuencia que le pidas. Un zumbador activo no serviría: ignora la frecuencia y suena siempre igual.

NotaFrecuencia (Hz)
Do (C4)262
Re (D4)294
Mi (E4)330
Fa (F4)349

🔌 Conexiones

ComponentePin
Zumbador pasivo (+)D8
Zumbador pasivo (−)GND
Pulsador 1D2 ↔ GND
Pulsador 2D3 ↔ GND
Pulsador 3D4 ↔ GND
Pulsador 4D5 ↔ GND

💻 Código completo

// Mini piano de 4 teclas con zumbador pasivo
const int PIN_BUZZER = 8;
const int teclas[]   = {2, 3, 4, 5};
const int notas[]    = {262, 294, 330, 349}; // Do Re Mi Fa
const int N = 4;

void setup() {
  for (int i = 0; i < N; i++) pinMode(teclas[i], INPUT_PULLUP);
  pinMode(PIN_BUZZER, OUTPUT);
}

void loop() {
  bool algunaPulsada = false;
  for (int i = 0; i < N; i++) {
    if (digitalRead(teclas[i]) == LOW) {   // pulsada (pull-up)
      tone(PIN_BUZZER, notas[i]);
      algunaPulsada = true;
    }
  }
  if (!algunaPulsada) noTone(PIN_BUZZER);  // silencio si no hay teclas
}

🛠️ Montaje paso a paso

  1. Coloca los 4 pulsadores en fila sobre el canal central.
  2. Cablea cada uno entre su pin (D2–D5) y GND.
  3. Conecta el zumbador pasivo entre D8 y GND.
  4. Sube el sketch y toca: cada tecla suena distinto.

🧩 Resolución de problemas

SíntomaCausaSolución
Suena siempre igualUsaste zumbador activoCámbialo por el pasivo
No suena nadaFalta GND del zumbadorRevisa la patilla −
Una tecla no vaPulsador mal cableadoPatas en diagonal a GND

🚀 Para ir más lejos

  • Programa una melodía automática con un array de notas y duraciones.
  • Añade el altavoz 8 Ω con un transistor para más volumen.
← Volver a Formación Arduino