| Característica | Buzzer Ativo (#20) | Buzzer Passivo (#21) |
|---|---|---|
| Oscilador interno | ✅ Sim — frequência fixa | ❌ Não — precisa de sinal externo |
| Controlo de frequência | Não — apenas liga/desliga | ✅ Sim — qualquer frequência |
| Função Arduino | digitalWrite(HIGH/LOW) | tone(pino, frequência) |
| Melodias | Não | ✅ Sim — tons variados |
| Identificação visual | Etiqueta/símbolo "+" marcado | Sem marcação ou PCB verde escura |
Fio do pino VCC do módulo ao pino 5V do Arduino.
Fio do pino GND do módulo ao GND do Arduino.
Fio do pino S do módulo ao pino D9 do Arduino. (Podes usar qualquer pino digital — D9 é convenção.)
// Frequências das notas musicais (Hz)
#define DO3 131 #define RE3 147 #define MI3 165
#define FA3 175 #define SOL3 196 #define LA3 220
#define SI3 247
#define DO4 262 #define RE4 294 #define MI4 330
#define FA4 349 #define SOL4 392 #define LA4 440
#define SI4 494
#define DO5 523 #define RE5 587 #define MI5 659
#define FA5 698 #define SOL5 784 #define LA5 880
#define PAUSA 0 // Silênciotone(pino, frequência, duração) do Arduino gera um sinal PWM de 50% de duty cycle na frequência indicada. noTone(pino) para o som. Só uma nota de cada vez por pino.#define BUZZER 9
// Notas e durações (ms) — Ode à Alegria (fragmento)
int notas[] = {330,330,349,392,392,349,330,294,
262,262,294,330,330,294,294};
int duracao[] = {400,400,400,400,400,400,400,400,
400,400,400,400,600,200,800};
int N = sizeof(notas) / sizeof(notas[0]);
void tocarMelodia() {
for (int i = 0; i < N; i++) {
if (notas[i] == 0) {
noTone(BUZZER); // Pausa
} else {
tone(BUZZER, notas[i]); // Toca nota
}
delay(duracao[i]);
noTone(BUZZER);
delay(30); // Pausa entre notas
}
}
void setup() { pinMode(BUZZER, OUTPUT); }
void loop() {
tocarMelodia();
delay(2000);
}