// Variabel Global
const int pwmChannel = 0;
const int pwmFrequency = 255;
const int buzzerPin = 33;

void setup() {
  ledcAttach(buzzerPin, pwmChannel, 12); // Memulai Kontrol PWM
  tone(buzzerPin, pwmFrequency); // Mengaktifkan Buzzer
}

void loop() {
  Melody(); // Memanggil Fungsi Melody()
}

// Fungsi Melody()
void Melody() {
  ledcWriteNote(buzzerPin, NOTE_C, 5); // DO
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_E, 5); // MI
  delay(1000);
  ledcWriteNote(buzzerPin, NOTE_C, 5); // DO
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_E, 5); // MI
  delay(1000);
  ledcWriteNote(buzzerPin, NOTE_F, 5); // FA
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_G, 5); // SOL
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_G, 5); // SOL
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_B, 5); // SI
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_C, 6); // DO
  delay(500);  
  ledcWriteNote(buzzerPin, NOTE_B, 5); // SI
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_C, 6); // DO
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_B, 5); // SI
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_G, 5); // SOL
  delay(500);  

  ledcWriteNote(buzzerPin, NOTE_C, 5); // DO
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_E, 5); // MI
  delay(1000);
  ledcWriteNote(buzzerPin, NOTE_C, 5); // DO
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_E, 5); // MI
  delay(1000);
  ledcWriteNote(buzzerPin, NOTE_F, 5); // FA
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_G, 5); // SOL
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_G, 5); // SOL
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_B, 5); // SI
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_C, 6); // DO
  delay(500);  
  ledcWriteNote(buzzerPin, NOTE_B, 5); // SI
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_C, 6); // DO
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_B, 5); // SI
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_G, 5); // SOL
  delay(500);  

  ledcWriteNote(buzzerPin, NOTE_C, 5); // DO
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_E, 5); // MI
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_G, 5); // SOL
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_F, 5); // FA
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_F, 5); // FA
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_G, 5); // SOL
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_F, 5); // FA
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_E, 5); // MI
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_C, 5); // DO
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_F, 5); // FA
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_E, 5); // MI
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_C, 5); // DO
  delay(1000);

  ledcWriteNote(buzzerPin, NOTE_C, 5); // DO
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_E, 5); // MI
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_G, 5); // SOL
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_F, 5); // FA
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_F, 5); // FA
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_G, 5); // SOL
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_F, 5); // FA
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_E, 5); // MI
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_C, 5); // DO
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_F, 5); // FA
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_E, 5); // MI
  delay(500);
  ledcWriteNote(buzzerPin, NOTE_C, 5); // DO
  delay(1000);

  ledcDetach(buzzerPin); // Menyudahi Kontrol PWM
}