Skip to content

Buzzer 模块

模块介绍

支持有源和无源蜂鸣器的驱动类。无源蜂鸣器可通过 PWM 调节频率播放不同音调,支持播放音符和旋律;有源蜂鸣器只能发出固定频率的蜂鸣声。

硬件引脚说明

引脚名称全称/含义接线颜色功能描述
SSignal/信号黄色数据传输引脚,用于控制蜂鸣器(需支持 PWM 输出,无源蜂鸣器)
VVoltage/电源红色电源电压输入,为设备提供工作电压
GGround/地线黑色接地引脚,完成电路回路

初始化参数

参数类型默认值说明
pinPin连接蜂鸣器的 GPIO 引脚(无源蜂鸣器需支持 PWM 输出)
is_passiveboolTrue是否是无源蜂鸣器(True=无源,False=有源)
active_highboolTrue高电平触发还是低电平触发(默认高电平)

导入和实例创建

python
from machine import Pin
from buzzer import Buzzer

# 初始化无源蜂鸣器(默认)
buzzer = Buzzer(Pin(4))

# 初始化有源蜂鸣器
buzzer = Buzzer(Pin(4), is_passive=False)

核心属性方法

属性或方法参数返回类型说明
on()None打开蜂鸣器
off()None关闭蜂鸣器
beep()times=1 (int), duration=0.2 (float), interval=0.1 (float)None发出指定次数的蜂鸣声
play_note()note='C4' (str), duration=0.5 (float)None播放指定音调(仅无源蜂鸣器)
set_tone_freq()frequency=1000 (int), duty=512 (int)None设置无源蜂鸣器的频率和占空比
deinit()None释放蜂鸣器占用的资源

内置音名

支持大调音名:C, D, E, F, G, A, B,可通过八度(如 C4, D5)指定音调。

使用示例

无源蜂鸣器使用

python
from machine import Pin
from buzzer import Buzzer
import time

# 初始化无源蜂鸣器(默认)
buzzer = Buzzer(Pin(4))  # 默认无源蜂鸣器

# 播放音符
buzzer.play_note('C4', duration=0.5)  # 播放 C4 音调
buzzer.play_note('D4', duration=0.5)  # 播放 D4 音调

# 发出蜂鸣声
buzzer.beep(times=3, duration=0.2)    # 连续蜂鸣3次

buzzer.deinit()  # 释放资源

有源蜂鸣器使用

python
from machine import Pin
from buzzer import Buzzer

# 初始化有源蜂鸣器
buzzer = Buzzer(Pin(4), is_passive=False)

# 发出蜂鸣声
buzzer.beep(times=3, duration=0.2)  # 连续蜂鸣3次

注意事项

引脚要求

无源蜂鸣器需要引脚支持 PWM 输出(如 ESP32/ESP8266 多数 GPIO 均支持)

蜂鸣器类型差异

  • 无源蜂鸣器:可通过 PWM 调节频率播放不同音调
  • 有源蜂鸣器:只能发出固定频率的蜂鸣声

功能使用限制

  • play_note() 和 set_tone_freq() 方法仅适用于无源蜂鸣器
  • 有源蜂鸣器仅支持 on(), off(), beep() 基本功能

最佳实践

使用完毕后建议调用 deinit() 释放 PWM 资源,避免资源占用