//----------------------------------------------------
const int buzzerPin = 5;
//----------------------------------------------------
#define NOTE_B0 31
#define NOTE_C1 33
#define NOTE_CS1 35
#define NOTE_D1 37
#define NOTE_DS1 39
#define NOTE_E1 41
#define NOTE_F1 44
#define NOTE_FS1 46
#define NOTE_G1 49
#define NOTE_GS1 52
#define NOTE_A1 55
#define NOTE_AS1 58
#define NOTE_B1 62
#define NOTE_C2 65
#define NOTE_G4 392
#define NOTE_A4 440
#define NOTE_B4 494
#define NOTE_C5 523
#define NOTE_D5 587
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_G5 784
//----------------------------------------------------
// Noten und Dauern für "Happy Birthday"
const int noten[] = {
NOTE_G4, NOTE_G4, NOTE_A4, NOTE_G4, NOTE_C5, NOTE_B4,
NOTE_G4, NOTE_G4, NOTE_A4, NOTE_G4, NOTE_D5, NOTE_C5,
NOTE_G4, NOTE_G4, NOTE_G5, NOTE_E5, NOTE_C5, NOTE_B4, NOTE_A4,
NOTE_F5, NOTE_F5, NOTE_E5, NOTE_C5, NOTE_D5, NOTE_C5
};
//----------------------------------------------------
const int dauer[] = {
8, 8, 4, 4, 4, 2,
8, 8, 4, 4, 4, 2,
8, 8, 4, 4, 4, 4, 2,
8, 8, 4, 4, 4, 2
};
//----------------------------------------------------
void setup() {
pinMode(buzzerPin, OUTPUT);
}
//----------------------------------------------------
void loop() {
spieleMelodie();
delay(2000); // Warte 2 Sekunden, bevor die Melodie erneut abgespielt wird
}
//----------------------------------------------------
void spieleMelodie() {
int notenLaenge = sizeof(noten) / sizeof(int);
for (int i = 0; i < notenLaenge; i++) {
tone(buzzerPin, noten[i]);
// Umrechnung der Notendauer in Millisekunden
int notenDauer = (1000 / dauer[i]) * 1.30; // Anpassung für das richtige Timing
delay(notenDauer);
noTone(buzzerPin);
delay(notenDauer / 30); // Kurze Pause zwischen den Noten
}
}