一、无源蜂鸣器驱动原理
- 工作原理:必须由外部提供 PWM 脉冲信号 才能驱动发声
- 应用特性:
- 声音尖锐,适合警报、提示音
- 接触不良会导致音准偏差
1. 音谱频率设置
- 低音区(C3–B3)
Tone_CL = [131,147,165,175,196,220,247,262]
- 中音区(C4–B4)
Tone_CM = [262,294,330,349,392,440,494,523]
- 高音区(C5–B5)
Tone_CH = [523,587,659,698,784,880,988,1047]
- 硬件限制:蜂鸣器有额定频率范围,超出会跑调/无声
2. 音乐编程实现
- 初始化设置
- 使用
TonalBuzzer(buzzer_pin) 初始化
- 停止发声:
stop()
- 音符播放
- 核心:按频率播放
- 时间单位:
duration = 0.5 对应 1/16拍
- 乐曲播放
- 用
song 数组存音符频率
- 用
beat 数组存对应时值
- 循环播放实现旋律
3. 音乐编程技巧
- 音符索引:
Tone_CM[3] = 中音 mi
- 节奏换算:
- 0.5 → 1/16拍
- 1 → 1/8拍
- 2.5 → 5倍基础时长
- 异常处理:
try-except 捕获 Ctrl+C,安全停止发声
二、知识小结
| 知识点 |
核心内容 |
技术要点 |
实现难点 |
| 蜂鸣器驱动 |
需外部 PWM 脉冲驱动 |
无源蜂鸣器必须方波驱动 |
接触不良导致音准偏差 |
| 音阶频率映射 |
赫兹对应音符 |
低/中/高三组频率表 |
硬件频率范围限制 |
| 音乐编程结构 |
双数组存音高+节奏 |
song/beat 配对播放 |
时值计算、动态延时 |
| 播放控制 |
单音/乐曲播放函数 |
play_note / play_song |
音高线性调整、跑调 |
| 硬件适配 |
适配蜂鸣器频响 |
接受非标音阶做小调 |
高音尖锐、音色固定 |
发表于
2026-04-23 15:52
可西可彻
阅读( 6)
评论()
收藏
举报
|
|
|