#include"pitches.h" int melody[] = { NOTE_D4, NOTE_G4, NOTE_FS4, NOTE_A4, NOTE_G4, NOTE_C5, NOTE_AS4, NOTE_A4, NOTE_FS4, NOTE_G4, NOTE_A4, NOTE_FS4, NOTE_DS4, NOTE_D4, NOTE_C4, NOTE_D4,0, NOTE_D4, NOTE_G4, NOTE_FS4, NOTE_A4, NOTE_G4, NOTE_C5, NOTE_D5, NOTE_C5, NOTE_AS4, NOTE_C5, NOTE_AS4, NOTE_A4, //29 //8 NOTE_FS4, NOTE_G4, NOTE_A4, NOTE_FS4, NOTE_DS4, NOTE_D4, NOTE_C4, NOTE_D4,0, NOTE_D4, NOTE_FS4, NOTE_G4, NOTE_A4, NOTE_DS5, NOTE_D5, NOTE_C5, NOTE_AS4, NOTE_A4, NOTE_C5, NOTE_C4, NOTE_D4, NOTE_DS4, NOTE_FS4, NOTE_D5, NOTE_C5, NOTE_AS4, NOTE_A4, NOTE_C5, NOTE_AS4, //58 NOTE_D4, NOTE_FS4, NOTE_G4, NOTE_A4, NOTE_DS5, NOTE_D5, NOTE_C5, NOTE_D5, NOTE_C5, NOTE_AS4, NOTE_C5, NOTE_AS4, NOTE_A4, NOTE_C5, NOTE_G4, NOTE_A4, 0, NOTE_AS4, NOTE_A4, 0, NOTE_G4, NOTE_G4, NOTE_A4, NOTE_G4, NOTE_FS4, 0, NOTE_C4, NOTE_D4, NOTE_G4, NOTE_FS4, NOTE_DS4, NOTE_C4, NOTE_D4, 0, NOTE_C4, NOTE_D4, NOTE_G4, NOTE_FS4, NOTE_DS4, NOTE_C4, NOTE_D4, END }; // note durations: 8 = quarter note, 4 = 8th note, etc. int noteDurations[] = { //duration of the notes 8,4,8,4, 4,4,4,12, 4,4,4,4,4,4, 4,16,4, 8,4,8,4, 4,2,1,1,2,1,1,12, 4,4,4,4,4,4, 4,16,4, 4,4,4,4,4,4, 4,4,4,12, 4,4,4,4,4,4, 4,4,4,12, 4,4,4,4,4,4, 2,1,1,2,1,1,4,8,4, 2,6,4,2,6,4, 2,1,1,16,4, 4,8,4,4,4, 4,16,4, 4,8,4,4,4, 4,20, }; int speed=90; //higher value, slower notes int playing = 0; void tone(byte pin, int freq) { ledcSetup(0, 2000, 8); // setup beeper ledcAttachPin(pin, 0); // attach beeper ledcWriteTone(0, freq); // play tone playing = pin; // store pin } void noTone() { tone(playing, 0); } void setup() { Serial.begin(115200); for (int thisNote = 0; melody[thisNote]!=-1; thisNote++) { int noteDuration = speed*noteDurations[thisNote]; tone(25, melody[thisNote]); Serial.println(melody[thisNote]); delay(noteDuration); noTone(); } } void loop() { // no need to repeat the melody. }