#include <Tone.h>

// Crear un objeto Tone para manejar el buzzer
Tone tone1;

// Definición del pin del buzzer
#define BUZZER_PIN 7

// Definición de notas (frecuencias en Hz)
#define NOTE_C4 262
#define NOTE_D4 294
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_G4 392
#define NOTE_A4 440
#define NOTE_B4 494
#define NOTE_C5 523

// Melodía simple (ejemplo: "Cumpleaños Feliz")
int melody[] = {
    NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_F4, NOTE_E4,
    NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_G4, NOTE_F4,
    NOTE_C4, NOTE_C4, NOTE_C5, NOTE_A4, NOTE_F4, NOTE_E4, NOTE_D4,
    NOTE_C5, NOTE_C5, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_F4
};

// Duraciones correspondientes a cada nota (en milisegundos)
int noteDurations[] = {
    250, 250, 500, 500, 250, 250,
    250, 250, 500, 500, 250, 250,
    250, 250, 500, 500, 250, 250,
    250, 250, 500, 500, 250, 250
};

void setup() {
    tone1.begin(BUZZER_PIN); // Inicializa el buzzer en el pin definido
}

void loop() {
    // Reproducir cada nota de la melodía
    for (int thisNote = 0; thisNote < sizeof(melody) / sizeof(melody[0]); thisNote++) {
        tone1.play(melody[thisNote]); // Reproduce la nota actual
        delay(noteDurations[thisNote]); // Espera la duración de la nota
        tone1.stop(); // Detiene el tono
        delay(50); // Pausa breve entre notas
    }

    delay(1000); // Espera un segundo antes de repetir la melodía (opcional)
}