语音播报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,这就是我们放音频文件的地方,所以要注意音频文件的大小。导入需要播报的音频文件,注意命名格式为“0000X。mp3”其中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() {
Play(1);
delay(1000);
Play(2);
delay(1000);
Play(3);
delay(1000);
}
上面是播放DY-SV17F存储内的第1-3个音频文件,每个文件播放间隔1秒钟, 需要播放其它的音频文件只需要更改
Play(X);
“X”指需要播放的第几段音频文件。 下面来看看效果
|