#define NOTE_C4 261
#define NOTE_D4 294
#define NOTE_E4 329
#define NOTE_F4 349
#define NOTE_G4 392
#define NOTE_A4 440
#define NOTE_B4 493
#define NOTE_C5 523
const int buzzerPin = 12; // Pin buzzer
void setup() {
pinMode(buzzerPin, OUTPUT);
}
void loop() {
// Memainkan melodi sederhana
playMelody();
}
void playTone(int frequency, int duration) {
for (long i = 0; i < duration * 1000L; i += frequency * 2) {
digitalWrite(buzzerPin, HIGH);
delayMicroseconds(frequency);
digitalWrite(buzzerPin, LOW);
delayMicroseconds(frequency);
}
}
void playMelody() {
int melody[] = {
NOTE_C4, NOTE_E4, NOTE_G4, NOTE_C5,
NOTE_G4, NOTE_E4, NOTE_C4,
NOTE_G4, NOTE_E4, NOTE_C4,
NOTE_C4, NOTE_C4, NOTE_C4,
NOTE_G4, NOTE_A4, NOTE_G4, NOTE_F4, NOTE_E4,
NOTE_G4, NOTE_A4, NOTE_G4, NOTE_F4, NOTE_E4,
NOTE_C4, NOTE_E4, NOTE_G4, NOTE_C5,
NOTE_G4, NOTE_E4, NOTE_C4
};
int noteDurations[] = {
4, 4, 4, 4,
4, 4, 2,
4, 4, 2,
4, 4, 4,
8, 8, 4, 4, 4,
8, 8, 4, 4, 4,
4, 4, 4, 4,
4, 4, 2
};
for (int i = 0; i < sizeof(melody) / sizeof(melody[0]); i++) {
if (melody[i] == 0) {
delay(noteDurations[i]);
} else {
playTone(melody[i], noteDurations[i] * 125);
delay(noteDurations[i] * 1.30);
}
}
}