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.