buzzer-melodie.ino
tone() genera una onda cuadrada a la frecuencia pedida en el pin del zumbador; dos arrays guardan notas (Hz) y duraciones (tiempos). Se necesita un zumbador pasivo (sin oscilador) para melodías.
Hardware necesario
Un Arduino Micro (ATmega32U4, 16 MHz, 5 V) en formato para protoboard con conector micro-USB y USB nativo (teclado/ratón). 1 zumbador pasivo de 5 V.
Cableado
Born + del zumbador al pin 8, − a GND.
Funcionamiento
Cada nota suena el 90% de su tiempo; el resto forma el silencio entre notas, lo que hace legible la melodía. En el Arduino IDE, elija « Arduino Micro » y el puerto, y suba. En Windows puede requerirse un driver .inf para el puerto COM. Como el 32U4 es el propio USB, un mal sketch puede bloquear el reflujo (doble reset).
Para ir más lejos
Añada un botón para cambiar de melodía o un potenciómetro para el tempo.
buzzer-melodie.ino
// Melodie sur buzzer passif : tableaux notes/durees.
const int BUZZER = 8;
const int MELODIE[] = {262, 330, 392, 523, 392, 330, 262}; // do mi sol do...
const int DUREES[] = {4, 4, 4, 2, 4, 4, 2}; // en temps
void setup() {
Serial.begin(9600);
}
void loop() {
int tempo = 1000 / 4;
for (size_t i = 0; i < sizeof(MELODIE) / sizeof(MELODIE[0]); i++) {
int ms = tempo * 4 / DUREES[i];
tone(BUZZER, MELODIE[i], ms * 9 / 10); // 90% de la note, puis silence
delay(ms);
}
delay(1000);
}