Arduino DY-SV17F自动语音广播
- 语音播报DY-SV17F
-
- DY-SV17F简介
- 说明工作模式
- IO 独立模式 0
- 接线
- 驱动
语音播报DY-SV17F
DY-SV17F简介
DY-SV17F 智能语音模块集成 IO 分段触发,UART 串口控制,ONE_line 单总线串口控制,标准 MP3 等 7 工作模式;板载 5W D 可直接驱动类功放 4Ω,3~5W 喇叭;支持 MP3,WAV 板载解码格式 32Mbit(4MByte)flash 存储,可通过 USB 数据线连接计算机更新音频文件。 本次将会以IO 分段触发实现语音自动广播
说明工作模式
- IO 组合模式0: 单片机控制 I/O 组合触发指定曲目(低电平有效)后释放(IO0-IO7 恢复高电平),播放当前曲目停止;中间重新触发,播放新曲目,播放结束停止;如果一直触发(不释放电平),就循环播放。
- IO 组合模式 1: 单片机控制 IO 组合触发指定曲目(低电平有效),一直循环播放指定曲目,电平释放(IO0-IO7 恢复高电平)即停止播放。中间释放电平,立即停止播放。
- IO 独立模式 0: IO0-IO7 独立控制 8 首曲目, IO 触发指定曲目(低电平有效)后释放(IO0-IO7 恢复高电平),播放当前曲目停止;中间重新触发,播放新曲目,播放结束停止;如果一直触发(不释放电平),就循环播放。
- IO 独立模式 1: IO0-IO7 独立控制 8 首曲目,IO 指定曲目的触发(低电平有效)已循环播放, 电平释放(IO0-IO7 恢复高电平)即停止播放。中间释放电平,立即停止播放。
- UART 串口模式: 通过UART串口发送 起始码-指令类型-数据长度(n)-数据 1-数据 n-和检验(SM) 实现语音广播、上一曲、下一曲等模块功能。
- One_line 单总线串口模式: 通过特定的时间顺序,将0码或1码的组合发送到模块,实现模块的语音广播、上一首歌、下一首歌等功能。
下文由Arduino控制DY-SV17F的“IO独立模式0”展开
IO 独立模式 0
电路配置 不能省略上图中的上下拉电阻。
接线
按要求搭建外围电路
Arduino UNO | DY-SV17F |
---|---|
D9 | IO0 |
D8 | IO1 |
D7 | IO2 |
D6 | IO3 |
D5 | IO4 |
D4 | IO5 |
D3 | IO6 |
D2 | IO7 |
5V | 5V |
GND | GND |
先拔掉Arduino UNO上5V接口的线 然后用USB数据线把DY-SV17F模块连接到计算机, 打开我的电脑,你会发现我的电脑里有一个名字叫U盘符,空间大小不到4M,这就是我们播放音频文件的地方,所以我们应该注意音频文件的大小。导入需要播放的音频文件,注意命名格式为万万X。mp其中,X是1-8的数字
驱动
一切准备就绪后,开始实验 通过改变Arduino UNO的IO口电平驱动DY-SV17F播放预存音频文件 手册可以知道,IO需要独立模式DY-SV17F的8和IO默认拉高,然后拉低一个IO选择播放口电平IO口对应的音频文件。 然后我们可以通过创建函数来特别使用它DY-SV17F的8个IO口拉高
void INIT() {
digitalWrite(IO0,HIGH); digitalWrite(IO1,HIGH); digitalWrite(IO2,HIGH); digitalWrite(IO3,HIGH); digitalWrite(IO4,HIGH); digitalWrite(IO5,HIGH); digitalWrite(IO6,HIGH); digitalWrite(IO7,HIGH); }
每一次播放完一段音频后都要调用这个初始化函数去拉高所有IO口,使DY-SV17F恢复默认状态 现在来测试播放效果 主函数
void loop() {
// put your main code here, to run repeatedly:
Play(1);
delay(1000);
Play(2);
delay(1000);
Play(3);
delay(1000);
}
上面是播放DY-SV17F存储内的第1-3个音频文件,每个文件播放间隔1秒钟, 需要播放其它的音频文件只需要更改
Play(X);
“X”指需要播放的第几段音频文件。 下面来看看效果
DY-SV17F音频测试