#include "pitches.h"
const int SPEAKER_PIN = 9;
// notes from pitches.h
const int melodyNotes[] = {
NOTE_E4, NOTE_G4,
NOTE_A4, NOTE_A4, NOTE_A4, NOTE_B4,
NOTE_C5, NOTE_C5, NOTE_C5, NOTE_D5,
NOTE_B4, NOTE_B4, NOTE_A4, NOTE_G4,
NOTE_G4, NOTE_A4, 0, NOTE_C4, NOTE_G4,
NOTE_A4, NOTE_A4, NOTE_A4, NOTE_B4,
NOTE_C5, NOTE_C5, NOTE_C5, NOTE_D5,
NOTE_B4, NOTE_B4, NOTE_G4, NOTE_A4,
0, NOTE_E4, NOTE_G4,
NOTE_A4, NOTE_A4, NOTE_A4, NOTE_C5,
NOTE_D5, NOTE_D5, NOTE_D5, NOTE_E5,
NOTE_F5, NOTE_F5, NOTE_E5, NOTE_D5,
NOTE_E5, NOTE_A4, 0, NOTE_A4, NOTE_B4,
NOTE_C5, NOTE_C5, NOTE_D5,
NOTE_E5, NOTE_A4, 0, NOTE_A4, NOTE_C5,
NOTE_B4, NOTE_B4, NOTE_C5, NOTE_A4,
NOTE_B4, /*конец 1 куплета*/ 0, NOTE_E4, NOTE_G4,
NOTE_A4, NOTE_A4, NOTE_A4, NOTE_B4,
NOTE_C5, NOTE_C5, NOTE_C5, NOTE_D5,
NOTE_B4, NOTE_B4, NOTE_A4, NOTE_G4,
NOTE_G4, NOTE_A4, 0, NOTE_E4, NOTE_G4,
NOTE_A4, NOTE_A4, NOTE_A4, NOTE_B4,
NOTE_C5, NOTE_C5, NOTE_C5, NOTE_D5,
NOTE_B4, NOTE_B4, NOTE_A4, NOTE_G4,
NOTE_A4, 0, NOTE_E4, NOTE_G4,
NOTE_A4, NOTE_A4, NOTE_A4, NOTE_C5,
NOTE_D5, NOTE_D5, NOTE_D5, NOTE_E5,
NOTE_F5, NOTE_F5, NOTE_E5, NOTE_D5,
NOTE_E5, NOTE_A4, 0, NOTE_A4, NOTE_B4,
NOTE_C5, NOTE_C5, NOTE_D5,
NOTE_E5, NOTE_A4, 0, NOTE_A4, NOTE_D5,
NOTE_B4, NOTE_B4, NOTE_A4, NOTE_G4,
NOTE_A4,
};
// note durations: 4 = quarter note, 8 = eighth note, etc.:
const int notesDurations[] = {
8, 8,
4, 4, 8, 8,
4, 4, 8, 8,
4, 4, 8, 8,
8, 8, 4, 8, 8,
4, 4, 8, 8, //23
4, 4, 8, 8,
4, 4, 8, 8, //31
2, 8, 8,
4, 4, 8, 8,
4, 4, 8, 8, //42
4, 4, 8, 8,
8, 8, 4, 8, 8,
4, 4, 4,
8, 8, 4, 8, 8,
4, 4, 8, 8, //63
4, 4, 8, 8,
4, 4, 8, 8,
4, 4, 8, 8,
4, 4, 8, 8,
8, 8, 4, 8, 8, //84
4, 4, 8, 8,
4, 4, 8, 8,
4, 4, 8, 8,
4, 4, 8, 8,
4, 4, 8, 8,
4, 4, 8, 8, //108
4, 4, 8, 8,
8, 8, 4, 8, 8,
4, 4, 4,
8, 8, 4, 8, 8,
4, 4, 8, 8,
4
};
void setup()
{
}
void loop()
{
playMelody();
delay(2000);
}
void playMelody() {
// играем ноты из массива melody и длительностью noteDurations
int notesAmmount = sizeof(melodyNotes)/sizeof(melodyNotes[0]);
for (int i = 0; i < notesAmmount; i++) {
tone(SPEAKER_PIN, melodyNotes[i], 1000 / notesDurations[i]);
delay(1000 / notesDurations[i] + 63);
}
}