当前位置:网站首页>Arduino DY-SV17F自动语音播报
Arduino DY-SV17F自动语音播报
2022-07-03 00:56:00 【优信电子】
Arduino DY-SV17F自动语音播报
语音播报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() {
// 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音频测试
边栏推荐
- Makefile中wildcard、patsubst、notdir的含义
- [introduction to AUTOSAR seven tool chain]
- The latest analysis of tool fitter (technician) in 2022 and the test questions and analysis of tool fitter (technician)
- leetcode 2097 — 合法重新排列数对
- The arm core board / development board of Feiling equipped with Ti am62x made its debut in embedded world 2022
- 【第29天】给定一个整数,请你求出它的因子数
- 每日一题之干草堆的移动
- On Fibonacci sequence
- Niu Ke swipes questions and clocks in
- Reading and writing speed of Reza rz/g2l arm development board storage and network measurement
猜你喜欢

RISA rz/g2l processor introduction | frame diagram | power consumption | schematic diagram and hardware design guide

MySQL基础用法02
![[AUTOSAR II appl overview]](/img/da/76ccc05e2199705b20d8304bfb86b2.png)
[AUTOSAR II appl overview]

数学建模之线性规划(含MATLAB代码)

异步、郵件、定時三大任務

leetcode:871. 最低加油次数【以前pat做过 + 最大堆 +贪心】
![[C language] branch and loop statements (Part 1)](/img/47/6efcc59bd26e26f66c698635c26c8b.png)
[C language] branch and loop statements (Part 1)
![[shutter] image component (configure local GIF image resources | load placeholder with local resources)](/img/73/19e2e0fc5ea6f05e34584ba40a452d.jpg)
[shutter] image component (configure local GIF image resources | load placeholder with local resources)

dotConnect for PostgreSQL数据提供程序

攻克哈希的基本概念与实现
随机推荐
关于Fibonacci数列
电话网络问题
有向图的强连通分量
leetcode:701. Insertion in binary search tree [BST insertion]
2022 Jiangxi Provincial Safety Officer B certificate reexamination examination and Jiangxi Provincial Safety Officer B certificate simulation examination question bank
Machine learning terminology
Mongodb common commands of mongodb series
12_ Implementation of rolling automatic video playback effect of wechat video number of wechat applet
链表内指定区间反转
[自我管理]时间、精力与习惯管理
Linear programming of mathematical modeling (including Matlab code)
无向图的割点
leetcode:871. 最低加油次数【以前pat做过 + 最大堆 +贪心】
Database SQL language 02 connection query
1038 Recover the Smallest Number
kivy教程之在 Kivy App 中使用 matplotlib 的示例
【FPGA教程案例5】基于vivado核的ROM设计与实现
excel表格计算时间日期的差值,并转化为分钟数
[overview of AUTOSAR three RTE]
递归处理组织的几种情况
