Início›Módulos›Buzzer Passivo
⬤ Iniciante · Grupo 2 — Som e Áudio

🎵 Buzzer Passivo

⏱️ 25 min 🧩 Módulo buzzer passivo · PWM · tone() 📦 Módulo #21

Nesta página

🔔 Buzzer Ativo vs. Passivo

CaracterísticaBuzzer Ativo (#20)Buzzer Passivo (#21)
Oscilador interno✅ Sim — frequência fixa❌ Não — precisa de sinal externo
Controlo de frequênciaNão — apenas liga/desliga✅ Sim — qualquer frequência
Função ArduinodigitalWrite(HIGH/LOW)tone(pino, frequência)
MelodiasNão✅ Sim — tons variados
Identificação visualEtiqueta/símbolo "+" marcadoSem marcação ou PCB verde escura
💡
Para saber qual tens: Liga VCC e GND e toca brevemente no pino de sinal em +5V. Se emitir um som contínuo de frequência fixa, é o ativo. Se emitir apenas um clique, é o passivo.

🔌 Pinagem — Buzzer Passivo

VCCAlimentação → 5V do Arduino
GNDMassa → GND do Arduino
SSinal PWM → pino D9 (ou qualquer pino digital)

🔗 Ligar ao Arduino

1

VCC → 5V

Fio do pino VCC do módulo ao pino 5V do Arduino.

2

GND → GND

Fio do pino GND do módulo ao GND do Arduino.

3

S → D9

Fio do pino S do módulo ao pino D9 do Arduino. (Podes usar qualquer pino digital — D9 é convenção.)

🎼 Notas Musicais — Frequências

notas.h
// 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êncio
ℹ️
A função tone(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.

🎵 Tocar uma Melodia Completa

ex_buzzer_passivo.ino
#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);
}

🏆 Para ir mais longe

Kit B 37 · PR.FT6_15 · Arduino UNO · Raspberry Pi · Início · led.dge.medu.pt