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 分段触发实现语音自动播报

工作模式说明

  1. IO 组合模式0:
    单片机控制 I/O 组合触发(低电平有效)指定的曲目后释放(IO0-IO7 恢复高电平),播放完当前曲目停止;播放中途重新触发,播放新的曲目,播放结束停止;若一直触发(不释放电平),循环播放。
  2. IO 组合模式 1:
    单片机控制 IO 组合触发(低电平有效)指定的曲目,一直循环播放指定曲目,电平释放(IO0-IO7
    恢复高电平)即停止播放。播放中途释放电平,即刻停止播放。
  3. IO 独立模式 0:
    IO0-IO7 独立控制 8 首曲目, IO 触发(低电平有效)指定的曲目后释放(IO0-IO7 恢复高电平),播放完当前曲目停止;播放中途重新触发,播放新的曲目,播放结束停止;若一直触发(不释放电平),循环播放。
  4. IO 独立模式 1:
    IO0-IO7 独立控制 8 首曲目,IO 触发(低电平有效)指定的曲目,一直循环播放指定曲目,
    电平释放(IO0-IO7 恢复高电平)即停止播放。播放中途释放电平,即刻停止播放。
  5. UART 串口模式:
    通过UART串口发送
    起始码-指令类型-数据长度(n)-数据 1-数据 n-和检验(SM)
    来实现模块的语音播报、上一曲、下一曲等功能。
  6. One_line 单总线串口模式:
    通过特定的时序,往模块发送0码或1码的组合实现模块的语音播报、上一曲、下一曲等功能。

下文由Arduino控制DY-SV17F的“IO独立模式0”展开

在这里插入图片描述

点击图片购买

IO 独立模式 0

电路配置
在这里插入图片描述
上图中的上下拉电阻不可以省略。

接线

按要求把外围电路搭建好

Arduino UNODY-SV17F
D9IO0
D8IO1
D7IO2
D6IO3
D5IO4
D4IO5
D3IO6
D2IO7
5V5V
GNDGND

在这里插入图片描述
先拔掉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音频测试

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值