/* Memainkan Lagu dengan Arduino
* Program ini memainkan lagu anak-anak berjudul :
* ' Aku sayang ibu'.
* Lagu dimainkan pada speaker terhubung ke pin 3 & GND.
*
* Dibuat 1 Mei 2023
* by Yudiansya Lubis
*/
#include"nada.h"
int melodi[] = { // note lagu
NOTE_G3, NOTE_C4, NOTE_E4, NOTE_G4,
NOTE_E4, NOTE_A4, NOTE_G4, NOTE_F4, NOTE_E4, NOTE_D4,
NOTE_G3, NOTE_B3, NOTE_D4, NOTE_F4,
NOTE_A4, NOTE_G4, NOTE_A4, NOTE_G4, NOTE_F4, NOTE_E4,
NOTE_G3, NOTE_C4, NOTE_E4, NOTE_G4,
NOTE_E4, NOTE_F4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_A4,
NOTE_A4, NOTE_A4, NOTE_A4, NOTE_B4, NOTE_C5, NOTE_G4,
NOTE_E4, NOTE_G4, NOTE_F4, NOTE_E4, NOTE_D4, NOTE_C4,
END
};
// durasi nada : 12 = not 1/2 ; 8 = not 1/4 ; 4 = not 1/8 ; 2 = not 1/16 ; dst.
int notDurasi[] = { //duration not
4,8,8,12,
4,4,4,4,4,12,
4,8,8,12,
4,4,4,4,4,12,
4,8,8,12,
4,4,4,4,4,12,
4,4,4,4,4,8,
8,4,4,4,4,12,
};
int speed=50; //pengatur kecepatan lagu. Nilai tinggi, semakin cepat lagu
void setup() {
for (int i=0; melodi[i]!=-1; i++) {
//penghitung variabel array, hingga bertermu END=-1
int Durasi = speed * notDurasi[i];
tone(3, melodi[i],Durasi * 0.5);
// faktor pengali 0,8 menentukan lamanya not berbunyi
delay(Durasi); //bunyikan selama noteDuration
noTone(3);
}
}
void loop() {
// no need to repeat the melody.
}