#define BUZZER_PIN 25 // Speaker or Buzzer Pin
// Notes Frequency in Hz
#define NOTE_B3 247
#define NOTE_C4 262
#define NOTE_D4 294
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_G4 392
#define NOTE_A4 440
#define NOTE_REST 0 // Pause/Silence
// Song Melody (Frequency Array)
int melody[] = {
// तुझे देखा तो ये जाना सनम
NOTE_E4, NOTE_E4, NOTE_D4, NOTE_C4,
NOTE_D4, NOTE_C4, NOTE_B3, NOTE_C4,
NOTE_D4, NOTE_D4, NOTE_C4,
NOTE_REST,
// प्यार होता है दीवाना सनम
NOTE_E4, NOTE_E4, NOTE_D4, NOTE_C4,
NOTE_D4, NOTE_C4, NOTE_B3, NOTE_C4,
NOTE_D4, NOTE_D4, NOTE_C4,
NOTE_REST,
// अब यहाँ से कहाँ जाएँ हम
NOTE_G4, NOTE_G4, NOTE_F4, NOTE_E4,
NOTE_F4, NOTE_E4, NOTE_D4, NOTE_E4,
NOTE_F4, NOTE_F4, NOTE_E4,
NOTE_REST,
// तेरी बाहों में मर जाएँ हम
NOTE_G4, NOTE_G4, NOTE_F4, NOTE_E4,
NOTE_F4, NOTE_E4, NOTE_D4, NOTE_E4,
NOTE_F4, NOTE_F4, NOTE_E4,
NOTE_REST
};
// Note Durations (4 = quarter note, 8 = eighth note, etc.)
int noteDurations[] = {
// तुझे देखा तो ये जाना सनम
6, 6, 6, 6,
6, 6, 6, 6,
6, 6, 6,
6,
// प्यार होता है दीवाना सनम
4, 4, 4, 4,
4, 4, 4, 4,
4, 4, 2,
4,
// अब यहाँ से कहाँ जाएँ हम
4, 4, 4, 4,
4, 4, 4, 4,
4, 4, 2,
4,
// तेरी बाहों में मर जाएँ हम
4, 4, 4, 4,
4, 4, 4, 4,
4, 4, 2,
4
};
void playTone(int frequency, int duration) {
if (frequency == NOTE_REST) {
ledcWriteTone(BUZZER_PIN, 0); // Silence
} else {
ledcWriteTone(BUZZER_PIN, frequency);
}
delay(duration);
ledcWriteTone(BUZZER_PIN, 0); // Stop note
}
void setup() {
// Attach Pin to LEDC Channel (ESP32 Arduino Core v3.x syntax)
ledcAttach(BUZZER_PIN, 2000, 8);
}
void loop() {
int totalNotes = sizeof(melody) / sizeof(melody[0]);
for (int thisNote = 0; thisNote < totalNotes; thisNote++) {
// Note duration calculation (1000ms / duration)
int duration = 1000 / noteDurations[thisNote];
playTone(melody[thisNote], duration);
// Pause between notes to distinguish them
int pauseBetweenNotes = duration * 0.30;
delay(pauseBetweenNotes);
}
// Wait 3 seconds before repeating the song
delay(3000);
}