// Definición de las frecuencias de las notas musicales
#define NOTE_G4 392
#define NOTE_EB4 311
#define NOTE_F4 349
#define NOTE_D4 294
#define NOTE_B4 494
// Pin donde está conectado el buzzer
const int buzzerPin = 8;
void setup() {
pinMode(buzzerPin, OUTPUT);
tocarBeethoven();
}
void loop() {
// Se ejecuta una sola vez en el setup.
// Si quieres que se repita, mueve 'tocarBeethoven()' aquí.
}
void tocarBeethoven() {
// --- COMPÁS 1: El famoso "Tán-tán-tán-tááán" ---
// Tres corcheas de Sol (G4) de 200ms aprox.
for (int i = 0; i < 3; i++) {
tone(buzzerPin, NOTE_G4, 200);
delay(250); // El delay incluye un pequeño silencio entre notas
}
// Mib blanca con calderón (sostenida más tiempo)
tone(buzzerPin, NOTE_EB4, 800);
delay(1000);
delay(300); // Pausa dramática entre motivos
// --- COMPÁS 2: El segundo motivo bajando un tono ---
// Tres corcheas de Fa (F4)
for (int i = 0; i < 3; i++) {
tone(buzzerPin, NOTE_F4, 200);
delay(250);
}
// Re blanca con calderón
tone(buzzerPin, NOTE_D4, 800);
delay(1000);
delay(400); // Pausa antes de la sección rápida
// --- COMPÁS 3: Las semicorcheas rápidas ---
// Recreación del arpegio rápido ascendente/descendente del tercer compás
int melodiaRapida[] = {
NOTE_G4, NOTE_G4, NOTE_G4, NOTE_EB4,
NOTE_F4, NOTE_F4, NOTE_F4, NOTE_D4,
NOTE_G4, NOTE_B4, NOTE_D4, NOTE_G4
};
// Duración rápida para simular las semicorcheas
int duraciones[] = {
100, 100, 100, 200,
100, 100, 100, 200,
100, 100, 100, 300
};
for (int i = 0; i < 12; i++) {
tone(buzzerPin, melodiaRapida[i], duraciones[i]);
delay(duraciones[i] * 1.30); // Espaciado proporcional
}
}