const int pino_buzzer = 5; // Pino 5 conectado ao buzzer passivo
const int canal_pwm = 0; // Canal PWM utilizado para o buzzer
void setup()
{
ledcSetup(canal_pwm, 1000, 8); // Configuração do canal PWM
// (frequência de 1000 Hz, resolução de 8 bits)
ledcAttachPin(pino_buzzer, canal_pwm); // Associa o pino do buzzer ao canal PWM
}
void loop()
{
int melody[] = {
440, 440, 440, 349, 523, 440, 349, 523, 440,
659, 659, 659, 698, 523, 784, 740, 698, 659
};
int tempo[] =
{
500, 500, 500, 350, 150, 500, 350, 150, 1000,
500, 500, 500, 350, 150, 500, 350, 150, 1000
};
for (int i = 0; i < sizeof(melody) / sizeof(melody[0]); i++)
{
ledcWrite(canal_pwm, melody[i]);
delay(tempo[i] * 1.30); // Pequeno delay para espaçar as notas
ledcWrite(canal_pwm, 0); // Desliga o buzzer ao final de cada nota
delay(50); // Pequeno delay para evitar cliques entre as notas
}
delay(2000); // Aguarda 2 segundos antes de repetir a música
}
//ledc -> utilizada para controlar as portas PWM que são portas onde é possível
//variar a corrente enviada para o módulo, permitindo valores intermediários entre 0v
//e 3.3v.