🔊 Buzzer
Gerar sons com buzzer ativo e passivo. Criar melodias e alertas sonoros controlando a frequência com PWM.
Ativo vs Passivo
| Tipo | Como funciona | Controlo |
|---|---|---|
| Ativo | Oscilador interno — basta ligar/desligar | GPIO digital HIGH/LOW |
| Passivo | Sem oscilador — precisa de sinal externo | PWM com frequência variável |
Circuito
Buzzer + (VCC) → GPIO 18
Buzzer − (GND) → GND (pino 6)
Exercício 1 — Buzzer ativo (alerta)
Python · buzzer_ativo.py
import RPi.GPIO as GPIO import time BUZZ = 18 GPIO.setmode(GPIO.BCM) GPIO.setup(BUZZ, GPIO.OUT) for _ in range(3): GPIO.output(BUZZ, GPIO.HIGH) time.sleep(0.2) GPIO.output(BUZZ, GPIO.LOW) time.sleep(0.1) GPIO.cleanup()
Exercício 2 — Buzzer passivo (melodia)
Python · buzzer_melodia.py
import RPi.GPIO as GPIO import time BUZZ = 18 GPIO.setmode(GPIO.BCM) GPIO.setup(BUZZ, GPIO.OUT) pwm = GPIO.PWM(BUZZ, 440) # Notas: (frequência_Hz, duração_s) notas = [ (262, 0.3), # Dó (294, 0.3), # Ré (330, 0.3), # Mi (349, 0.3), # Fá (392, 0.5), # Sol ] for freq, dur in notas: pwm.ChangeFrequency(freq) pwm.start(50) time.sleep(dur) pwm.stop() time.sleep(0.05) GPIO.cleanup()