// Define o pino onde o buzzer está conectado
int buzzer = 26;
// Define as frequências das notas musicais
#define NOTE_G4 392
#define NOTE_B4 494
#define NOTE_D4 294
#define NOTE_F4 349
#define NOTE_A4 440
#define NOTE_C4 262
#define NOTE_E4 330
#define NOTE_G3 196
// Melodia: sequência de notas
int melody[] = {
NOTE_G4, NOTE_B4, NOTE_D4, NOTE_F4,
NOTE_A4, NOTE_C4, NOTE_E4, NOTE_G3, 0,
};
// Duração de cada nota (em milissegundos)
int noteDurations[] = {
600, 600, 600, 600,
500, 500, 500, 700, 100000
};
void setup() {
pinMode(buzzer, OUTPUT);
}
void loop() {
// Toca a melodia
for (int thisNote = 0; thisNote < 20; thisNote++) {
// Para calcular a duração da nota, divide-se um segundo pela duração da nota.
// Uma nota com duração 4 será um quarto (250ms)
//int noteDuration = 500 / noteDurations[thisNote];
tone(buzzer, melody[thisNote], noteDurations[thisNote]);
// Para dar um breve espaço entre as notas
//int pauseBetweenNotes = noteDuration * 1.00;
delay(noteDurations[thisNote]);
// Parando o tom gerado no pino
//noTone(buzzer);
}
// Espera um pouco antes de repetir a melodia
delay(1000);
}