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

🔔 Buzzer Ativo

⏱️ 20 min 🧩 Módulo buzzer ativo · Digital 📦 Módulo #20

Nesta página

🔔 Buzzer Ativo vs. Passivo — Diferenças Fundamentais

🔔 Buzzer Ativo (#20)

  • Oscilador interno — frequência fixa
  • Controlo: digitalWrite(HIGH/LOW)
  • Sem controlo de tom ou melodia
  • Mais simples — perfeito para alertas
  • Identificação: etiqueta "+" marcada

🎵 Buzzer Passivo (#21)

  • Sem oscilador — precisa de sinal externo
  • Controlo: tone(pino, frequência)
  • Melodias e tons variados
  • Mais complexo — mais expressivo
  • Identificação: PCB sem marcação de polaridade
💡
Dica de identificação: Liga VCC e GND ao buzzer sem ligar o pino de sinal. Se emitir som constante é o ativo. Se ficar em silêncio é o passivo (precisa de sinal PWM).

🔌 Pinagem — Buzzer Ativo

VCCAlimentação → 5V do Arduino
GNDMassa → GND do Arduino
SSinal → pino D8 (HIGH = som activo)
⚠️
O buzzer ativo do Kit B 37 usa lógica normal: HIGH activa o som, LOW desactiva. Alguns módulos usam lógica invertida — se o teu buzzer soa ao contrário, troca HIGH por LOW no código.

💻 Alerta Sonoro Básico

ex_buzzer_ativo.ino
#define BUZZER_PIN 8

void bip(int duracao_ms) {{
  digitalWrite(BUZZER_PIN, HIGH);
  delay(duracao_ms);
  digitalWrite(BUZZER_PIN, LOW);
}}

void setup() {{
  pinMode(BUZZER_PIN, OUTPUT);
  digitalWrite(BUZZER_PIN, LOW);  // Garantir silêncio ao início
  Serial.begin(9600);
}}

void loop() {{
  Serial.println("BIP simples");
  bip(200);
  delay(1000);
}}

🚨 Padrões de Alarme

ex_buzzer_padroes.ino
#define BUZZER_PIN 8

void bip(int ms) {{
  digitalWrite(BUZZER_PIN, HIGH); delay(ms);
  digitalWrite(BUZZER_PIN, LOW);
}}

// Padrão: 3 bips curtos (confirmação)
void confirmacao() {{
  for (int i = 0; i < 3; i++) {{ bip(80); delay(80); }}
}}

// Padrão: 1 bip longo (alerta)
void alerta() {{
  bip(800); delay(200);
}}

// Padrão: SOS morse (... --- ...)
void sos() {{
  int s = 100, l = 300, p = 100;
  for (int i=0;i<3;i++) {{ bip(s); delay(p); }}
  delay(200);
  for (int i=0;i<3;i++) {{ bip(l); delay(p); }}
  delay(200);
  for (int i=0;i<3;i++) {{ bip(s); delay(p); }}
}}

void setup() {{ pinMode(BUZZER_PIN, OUTPUT); }}

void loop() {{
  confirmacao(); delay(2000);
  alerta();      delay(2000);
  sos();         delay(3000);
}}

🌡️ Alerta de Temperatura com DHT + Buzzer

ex_buzzer_temp.ino
#include <DHT.h>
#define BUZZER_PIN 8
#define DHT_PIN    2
#define TEMP_MAX   28.0
DHT dht(DHT_PIN, DHT11);

void setup() {{
  pinMode(BUZZER_PIN, OUTPUT);
  digitalWrite(BUZZER_PIN, LOW);
  dht.begin(); Serial.begin(9600);
}}

void loop() {{
  delay(2000);
  float t = dht.readTemperature();
  if (isnan(t)) return;
  Serial.print("T: "); Serial.println(t);
  if (t > TEMP_MAX) {{
    // Alarme de temperatura alta
    digitalWrite(BUZZER_PIN, HIGH); delay(500);
    digitalWrite(BUZZER_PIN, LOW);  delay(500);
  }}
}}

🏆 Para ir mais longe

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