// Частоты нот
#define NOTE_A4 440
#define NOTE_B4 494
#define NOTE_C5 523
#define NOTE_D5 587
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_G5 784
#define NOTE_GS5 831
#define NOTE_A5 880
#define NOTE_B5 988
#define NOTE_C6 1047
const int buzzer = 8;
// Мелодия главной темы Андфайн
int melody[] = {
NOTE_A4, NOTE_C5, NOTE_D5, NOTE_E5, NOTE_A4, NOTE_C5, NOTE_D5, NOTE_E5,
NOTE_F5, NOTE_E5, NOTE_D5, NOTE_C5, NOTE_B4, NOTE_C5, NOTE_D5, NOTE_E5,
NOTE_A4, NOTE_C5, NOTE_D5, NOTE_E5, NOTE_A4, NOTE_C5, NOTE_D5, NOTE_E5,
NOTE_G5, NOTE_F5, NOTE_E5, NOTE_D5, NOTE_C5, NOTE_B4, NOTE_A4, NOTE_A4
};
// Длительность каждой ноты (4 = четверть, 8 = восьмая)
int noteDurations[] = {
8, 8, 8, 8, 8, 8, 8, 8,
4, 8, 8, 8, 8, 8, 8, 4,
8, 8, 8, 8, 8, 8, 8, 8,
4, 8, 8, 8, 8, 8, 4, 2
};
void setup() {
pinMode(buzzer, OUTPUT);
}
void loop() {
int size = sizeof(melody) / sizeof(melody[0]);
for (int thisNote = 0; thisNote < size; thisNote++) {
// Вычисляем длительность ноты в миллисекундах
int noteDuration = 1000 / noteDurations[thisNote];
tone(buzzer, melody[thisNote], noteDuration);
// Пауза между нотами для четкого звучания
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
// Останавливаем звук перед следующей нотой
noTone(buzzer);
}
delay(3000); // Пауза 3 секунды перед повтором
}