示例4:蜂鸣器控制
大约 3 分钟
示例4:蜂鸣器控制
实验概述
通过 GPIO 输出或 PWM 信号驱动蜂鸣器发声。无源蜂鸣器需要 PWM 方波驱动(可调频率),有源蜂鸣器仅需高/低电平开关控制。
硬件接线
| 开发板标识 | GPIO引脚 | 连接设备 |
|---|---|---|
| BEEP | GPIO4 | 有源/无源蜂鸣器 |
普中开发板蜂鸣器接在 GPIO4,有源蜂鸣器高电平驱动。
JSON 配置示例
{
"peripherals": [
{
"id": "buzzer_gpio",
"name": "蜂鸣器-开关",
"type": 12,
"enabled": false,
"pins": [4],
"params": {
"initialState": 0
}
},
{
"id": "buzzer_pwm",
"name": "蜂鸣器-PWM",
"type": 17,
"enabled": false,
"pins": [4],
"params": {
"pwmChannel": 1,
"pwmFrequency": 2000,
"pwmResolution": 8,
"defaultDuty": 0
}
}
]
}注意:同一引脚只能配置一种模式,GPIO 和 PWM 选其一。
外设执行联动
场景1:定时报警(定时触发)
功能:每5秒响一次,持续200ms
Web界面配置步骤
步骤1:创建规则
- 点击左侧菜单 外设配置 → 切换到 外设执行管理 标签
- 点击 新增规则 按钮
- 填写基础配置:
- 规则名称:
蜂鸣器定时报警 - 上报数据:❌ 禁用
- 启用:✅ 启用
- 规则名称:
步骤2:配置触发器
点击 添加触发 按钮
填写触发器配置:
字段 填写内容 说明 触发类型 选择 定时触发 按时间间隔执行 定时模式 选择 间隔定时 每隔X秒执行 间隔秒数 5每5秒执行一次
步骤3:配置动作(需要3个动作)
动作1:启动蜂鸣器
- 点击 添加动作 按钮
- 填写:
- 动作类型:选择 高电平
- 目标外设:选择
buzzer_gpio
动作2:延迟200ms
- 再次点击 添加动作 按钮
- 填写:
- 动作类型:选择 命令脚本
- 脚本内容:
DELAY 200
动作3:关闭蜂鸣器
第三次点击 添加动作 按钮
填写:
- 动作类型:选择 低电平
- 目标外设:选择
buzzer_gpio
点击 保存 按钮
执行流程:
每5秒
↓
启动蜂鸣器(HIGH)
↓
延迟200ms
↓
关闭蜂鸣器(LOW)场景2:PWM音调控制(平台触发)
功能:通过云平台下发指令控制音调频率
Web界面配置步骤
步骤1:创建规则
- 点击 新增规则
- 填写基础配置:
- 规则名称:
蜂鸣器播放音调 - 上报数据:✅ 启用
- 启用:✅ 启用
- 规则名称:
步骤2:配置触发器
点击 添加触发 按钮
填写触发器配置:
字段 填写内容 说明 触发类型 选择 平台触发 接收云平台指令 操作符 选择 匹配模式 接收数据等于比较值时触发 比较值 {"freq":1000}匹配的指令
步骤3:配置动作
点击 添加动作 按钮
填写:
- 动作类型:选择 设置PWM
- 目标外设:选择
buzzer_pwm - 动作参数:
{"duty":128,"frequency":1000}
点击 保存 按钮
常用音调频率
| 音符 | 频率(Hz) | 说明 |
|---|---|---|
| DO | 523 | 中央C |
| RE | 587 | D |
| MI | 659 | E |
| FA | 698 | F |
| SO | 784 | G |
| LA | 880 | A |
| SI | 988 | B |
| DO+ | 1046 | 高音C |
注意事项
- 有源 vs 无源:有源蜂鸣器内置振荡器,给电就响;无源需要 PWM 方波
- PWM频率范围:人耳可听范围 20Hz~20kHz,常用报警音 1kHz~4kHz
- 占空比:无源蜂鸣器建议 50%(duty=128/8bit),过低可能不响
- 噪音控制:调试时可降低占空比减小音量
