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.
🧰 Lista de materiales
🎯 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.
| Nota | Frecuencia (Hz) |
|---|---|
| Do (C4) | 262 |
| Re (D4) | 294 |
| Mi (E4) | 330 |
| Fa (F4) | 349 |
🔌 Conexiones
| Componente | Pin |
|---|---|
| Zumbador pasivo (+) | D8 |
| Zumbador pasivo (−) | GND |
| Pulsador 1 | D2 ↔ GND |
| Pulsador 2 | D3 ↔ GND |
| Pulsador 3 | D4 ↔ GND |
| Pulsador 4 | D5 ↔ 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
- Coloca los 4 pulsadores en fila sobre el canal central.
- Cablea cada uno entre su pin (D2–D5) y GND.
- Conecta el zumbador pasivo entre D8 y GND.
- Sube el sketch y toca: cada tecla suena distinto.
🧩 Resolución de problemas
| Síntoma | Causa | Solución |
|---|---|---|
| Suena siempre igual | Usaste zumbador activo | Cámbialo por el pasivo |
| No suena nada | Falta GND del zumbador | Revisa la patilla − |
| Una tecla no va | Pulsador mal cableado | Patas 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.