蜂鸣器(Buzzer)使用

蜂鸣器是常见的声音输出设备,分为主动和被动两种。主动蜂鸣器只需给定高低电平即可响, 被动蜂鸣器则需要以 PWM 方式产生不同频率的方波才能发声。

硬件连接

  • VCC 接 3.3V(主动蜂鸣器)或经晶体管接 5V
  • GND 接 GND
  • 控制脚接任意 GPIO,以下示例假设使用 GPIO18

gpiozero 示例

from gpiozero import Buzzer
from time import sleep

bz = Buzzer(18)

bz.on()
sleep(1)
bz.off()

# 循环蜂鸣
for _ in range(3):
    bz.beep(on_time=0.2, off_time=0.2, n=5, background=False)

RPi.GPIO PWM 示例(适合被动蜂鸣器)

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
BUZZ_PIN = 18
GPIO.setup(BUZZ_PIN, GPIO.OUT)

pwm = GPIO.PWM(BUZZ_PIN, 1000)  # 1 kHz
pwm.start(50)  # 50% 占空比

time.sleep(1)
pwm.ChangeFrequency(2000)
time.sleep(1)

pwm.stop()
GPIO.cleanup()

更多脚本与说明可参考外部仓库 pi5-buzz-tools

使用仓库示例

仓库中提供的 main.py 可以让蜂鸣器按照设定次数和间隔鸣叫:

python3 main.py --times 3 --interval 0.5 --pin 16