## 硬件连接蜂鸣器连接到开发板的任意GPIO引脚:
**引脚接入方式:**- 蜂鸣器正极(+)连接到开发板的GPIO引脚(如D5)- 蜂鸣器负极(-)连接到开发板的GND引脚- 建议使用PWM引脚以支持可变频率控制
**连接注意事项:**- 蜂鸣器工作电压通常为3.3V-5V,确保开发板GPIO输出电平匹配- 如需驱动较大功率蜂鸣器,建议使用三极管或MOSFET进行电流放大- 对于有源蜂鸣器,直接连接即可发声;对于无源蜂鸣器,需要PWM信号控制频率
## 代码
import time
import board
import pwmio
# 蜂鸣器引脚
BUZZER_PIN = board.D5
# 初始化蜂鸣器(支持可变频率)
buzzer = pwmio.PWMOut(BUZZER_PIN, duty_cycle=0, frequency=440, variable_frequency=True)
def beep(duration=0.5, frequency=1000):
"""发出蜂鸣声"""
buzzer.frequency = frequency
buzzer.duty_cycle = 32768 # 50%占空比
time.sleep(duration)
buzzer.duty_cycle = 0 # 停止
def play_note(note_index, duration=0.5):
"""播放指定音符"""
# 8 音阶频率(C4, D4, E4, F4, G4, A4, B4, C5)
note_names = ['C4', 'D4', 'E4', 'F4', 'G4', 'A4', 'B4', 'C5']
frequencies = [261, 293, 329, 349, 392, 440, 493, 523]
if 0 <= note_index < len(frequencies):
buzzer.frequency = frequencies[note_index]
buzzer.duty_cycle = 32768
time.sleep(duration)
buzzer.duty_cycle = 0
print(f"播放音符: {note_names[note_index]} ({frequencies[note_index]}Hz)")
else:
print("无效的音符索引")
def stop_playing():
"""停止播放"""
buzzer.duty_cycle = 0
# 测试代码
beep() # 发出0.5秒蜂鸣声
# 播放C4音符
play_note(0) # 播放C4音符
我要赚赏金
