37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验八十二:MP3播放器 开源 Mini MP3 Player 播放器 SD卡 音乐DFPlayer模块(YX5200-24SS芯片)

YX5200-24SS

是一个提供串口的MP3芯片,完美的集成了MP3、WMV的硬解码。同时软件支持TF卡驱动和USB驱动,以及外挂FLASH。支持FAT16、FAT32文件系统。通过简单的串口指令即可完成播放指定的音乐,以及如何播放音乐等功能,无需繁琐的底层操作,使用方便,稳定可靠是此款产品的最大特点。

YX5200-24SS串口语音芯片参数
MP3文件格式:支持所有比特率11172-3和ISO13813-3layer音频解1码,采样支持(KHZ):8/11.025/12/16/22.05/24/32/44.1/48,支持Normal、Lazz、Classic、Pop、ROCK等
USB接口:2.0标准
UART接口:标准串口,TTL电平,波特率可设
输入电压:3.3-5V
额定电流:15ma(不带U盘)
尺寸:8.4*8mm
封装:SSOP24封装
工作温度:-40度—80度
湿度:5%-95%。

特色功能
1、支持采样率(KHz):8/11.025/12/16/22.05/24/32/44.1/48
2、24位DAC输出,动态范围支持90dB,信噪比支持85dB
3、完全支持FAT16、FAT32文件系统,最大支持32G的TF卡和U盘
4、多种控制模式,并口控制模式、串口模式、按键控制模式
5、广播语插播功能,可以暂停正在播放的背景音乐
6、音频数据按文件夹排序,最多支持100个文件夹,每隔文件夹可以分配1000首歌曲
7、支持line in功能
8、支持mic扩音喊话功能
9、支持声卡功能,也支持线控耳机功能
10、30级音量可调,10种EQ可调
11、支持外扩NORFLASH和NANDFLASH.板载默认支持NORFLASH

YX5200-24SS电原理图

应用领域
1.汽车导航语音播报
2.公路运输检查员,收费站语音提示
3.火车,公交车安全检查语音提示
4.电力,通讯,财务手术室语音提示
5.车辆进出通道以验证语音提示
6.边境频道语音提示
7.多声道语音报警或语音导航设备操作
8.带语音通知的电动观光巴士安全
9.机电设备故障报警
10.火警语音提示
11.自动播放设备,定期播放

Mini MP3 Player播放器模块

是一款小巧且价格低廉的MP3模块,可以直接接驳扬声器。模块配合供电电池、扬声器、按键可以单独使用,也可以通过串口控制,作为UNO或者是任何有串口的单片机的一个模块。模块本身完美的集成了MP3、WAV、WMA的硬解码。同时软件支持TF卡驱动,支持FAT16、FAT32文件系统。通过简单的串口指令即可完成播放指定的音乐,以及如何播放音乐等功能,无需繁琐的底层操作,使用方便,稳定可靠。

模块管脚图
管脚号        管脚名称        功能描述        备注
1        BUSY        播放时输出高电平,停止为低        忙信号
2        RX        UART异步串口数据输入        3.3V的TTL电平
3        TX        UART异步串口数据输出        3.3V的TTL电平
4        DACR        DAC右声道输出        可外接功放、耳机
5        DACL        DAC左声道输出        可外接功放、耳机
6        SPK1        外接单声道喇叭        接3W/4Ω或2W/8Ω无源喇叭
7        SPK2        外接单声道喇叭        接3W/4Ω或2W/8Ω无源喇叭
8        VCC        电源正极        3.6-5V
9        IO5        触发输入口5        接地触发
10        IO4        触发输入口4        接地触发
11        IO3        触发输入口3        接地触发
12        IO2        触发输入口2        接地触发
13        IO1        触发输入口1        接地触发
14        GND        电源负极        系统地
15        DP        USB数据线        读U盘或用USB数据线连接电脑更换TF卡内容
16        DM        USB数据线

模块应用图

模块工作模式

1)串口模式

模块支持异步串口通讯模式,通过串口接受控制命令

串口指令格式

串口控制指令

串口查询指令

2)AD按键模式

模块还支持AD按键控制方式,取代了传统了矩阵键盘的接法,这样做的好处是充分利用了MCU越来越强大的AD功能。设计简约而不简单,我们模块默认配置2个AD口,20个按键的阻值分配。按键使用示意原理图

3)IO模式
本模块也支持简单的IO模式

实验开源代码

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验八十二:开源 Mini MP3 Player TF卡播放器模块(YX5200-24SS)程序之一,循环播放TF卡内0003.MP3(MP3文件夹内),音量20Arduino-------dfplayer5V-------------VCCGND-----------GNDD2-----------TXDD3-----------RXD*/#include "SoftwareSerial.h"#include "DFRobotDFPlayerMini.h"SoftwareSerial mySoftwareSerial(2, 3); DFRobotDFPlayerMini myDFPlayer;void setup(){mySoftwareSerial.begin(9600);myDFPlayer.begin(mySoftwareSerial);myDFPlayer.volume(20);myDFPlayer.loop(3);  }void loop(){}

实验场景图

收集整理的使用<DFRobotDFPlayerMini>库的控制语句汇总

//收集整理的使用<DFRobotDFPlayerMini>库的控制语句汇总myDFPlayer.start();  //播放mp3myDFPlayer.pause();  //暂停mp3myDFPlayer.next();  //播放下一个mp3myDFPlayer.enableLoop();  //启用循环myDFPlayer.disableLoop();  //禁用循环myDFPlayer.stopAdvertise(); //停止做广告mp3Player.volume(10); //音量为10(0-30)myDFPlayer.previous();  //播放上一个的mp3myDFPlayer.randomAll(); //随机播放所有mp3myDFPlayer.enableLoopAll(); //循环所有mp3文件myDFPlayer.disableLoopAll(); //停止循环所有mp3文件myDFPlayer.play(1);  //播放文件夹里名为0001.mp3的音乐myDFPlayer.loop(1);  //循环文件夹里名为0001.mp3的音乐myDFPlayer.loopFolder(5); //循环文件夹SD:/ 05中的所有mp3文件myDFPlayer.playMp3Folder(4); //在SD中播放特定的mp3:/MP3/0004.mp3;文件名(0~65535)myDFPlayer.advertise(3); //在SD中宣传特定的mp3广告:/ADVERT/0003.mp3;文件名(0~65535)myDFPlayer.playFolder(15, 4);  //在SD中播放特定的mp3:/ 15/004.mp3;文件夹名称(1~99);文件名(1~255)myDFPlayer.playLargeFolder(2, 999); //在SD中播放特定的mp3:/ 02/004.mp3;文件夹名称(1~10);文件名(1~1000)

使用模块的几点注意事项

1、DFPlayer Mini 可以读取MP3 & WAV 档案格式,但试过档案长度1秒以下无法播放。

2、所有音乐档案一定要放在/mp3 资料夹里

3、音乐档案名称一定要使用4 个字,如0001.mp3, 0002.mp3…..0255.mp3

4、音乐档案超过4个字后则无限制,像是0001_Bruno_Mars_Count_On Me.mp3 是没问题的。

5、如果你从SD 卡上删掉某个档案,DFPlayer Mini 还是有办法把它播出来,好怪!后来我从新格式化SD 卡才成功播放我要的音乐档案。

6、Delay(sec); 这个指是是告诉Arduino 你要播放音乐的长度,如果你给的秒数不足,而下个指令又是要播另一首,则Arduino 就会把目前播放中断,而继续播下一首。

7、mp3_play (74); 这个指令是播放0074.mp3 这个音乐档。

8、不要直接把Arduino的5V给DFPlayer Mini使用,一定要分别供给DFPlayer Mini电源,不然喇叭会发出很大的杂音。

9、测试时平均电流150ma左右,模块发烫,可能要注意控制电流。

10、偶然发现这个模块使用不同的库,相关的控制语句完全不相同。

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验八十二:开源 Mini MP3 Player TF卡播放器模块(YX5200-24SS)程序之二,每3秒切换到下一首歌曲,音量20(速播TF卡内所有MP3歌曲)可以打印来自dfplayer的详细信息以处理不同的错误和状态。Arduino-------dfplayer5V-------------VCCGND-----------GNDD10-----------TXDD11-----------RXD*/#include "Arduino.h"#include "SoftwareSerial.h"#include "DFRobotDFPlayerMini.h"SoftwareSerial mySoftwareSerial(10, 11); DFRobotDFPlayerMini myDFPlayer;void printDetail(uint8_t type, int value);void setup(){mySoftwareSerial.begin(9600);Serial.begin(115200);Serial.println();Serial.println(F("DFRobot DFPlayer Mini Demo"));Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));if (!myDFPlayer.begin(mySoftwareSerial)) {  Serial.println(F("Unable to begin:"));Serial.println(F("1.Please recheck the connection!"));Serial.println(F("2.Please insert the SD card!"));while(true);}Serial.println(F("DFPlayer Mini online."));myDFPlayer.volume(20);  myDFPlayer.play(3);  }void loop(){static unsigned long timer = millis();if (millis() - timer > 3000) {timer = millis();myDFPlayer.next();  }if (myDFPlayer.available()) {printDetail(myDFPlayer.readType(), myDFPlayer.read()); }}void printDetail(uint8_t type, int value){switch (type) {case TimeOut:Serial.println(F("Time Out!"));break;case WrongStack:Serial.println(F("Stack Wrong!"));break;case DFPlayerCardInserted:Serial.println(F("Card Inserted!"));break;case DFPlayerCardRemoved:Serial.println(F("Card Removed!"));break;case DFPlayerCardOnline:Serial.println(F("Card Online!"));break;case DFPlayerPlayFinished:Serial.print(F("Number:"));Serial.print(value);Serial.println(F(" Play Finished!"));break;case DFPlayerError:Serial.print(F("DFPlayerError:"));switch (value) {case Busy:Serial.println(F("Card not found"));break;case Sleeping:Serial.println(F("Sleeping"));break;case SerialWrongStack:Serial.println(F("Get Wrong Stack"));break;case CheckSumNotMatch:Serial.println(F("Check Sum Not Match"));break;case FileIndexOut:Serial.println(F("File Index Out of Bound"));break;case FileMismatch:Serial.println(F("Cannot Find File"));break;case Advertise:Serial.println(F("In Advertise"));break;default:break;}break;default:break;}}

实验串口返回情况

实验开源仿真编程(Linkboy V4.2)

实验开源图形编程(Mixly、Mind+、编玩边学)

【雕爷学编程】Arduino动手做(82)---Mini MP3 Player播放器相关推荐

  1. 【雕爷学编程】Arduino动手做(16)---数字触摸传感器

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  2. 「雕爷学编程」Arduino动手做(15)——手指侦测心跳模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  3. 《花雕学AI》01:尝试使用新必应制作《雕爷学编程》的栏目介绍

    跨年头尾三个月,花雕走完塔克拉玛干沙漠回来后,突然发现世界变了,微软投资的ChatGPT火起来了,特别是升级的ChatGPT4.0,更是异常火热!这一个多月来,人工智能AI突然爆发,能做的事情太多了, ...

  4. 网吧做直播,制做网页播放器代码全集

    <script src="/script/ShowHidden.js" type="text/javascript"></script>

  5. Arduino触摸屏MP3音乐播放器和闹钟项目

    在这个项目中,我将向您展示如何制作Arduino触摸屏MP3音乐播放器和闹钟.您可以观看以下视频或阅读下面的书面教程. Arduino触摸屏MP3音乐播放器和闹钟项目 概述 主屏幕具有大时钟,日期和温 ...

  6. Mini MP3 Player模块无法正常播放

    Mini MP3 Player模块,弄了一下午还是无法播放,最后才发现是校验和的问题. 播放第一首歌曲指令(文件要以000X.MP3格式命名): 7E FF 06 03 00 00 01 FE F6 ...

  7. Android开发做一个简单的音乐播放器

    Android开发如何做一个简单的音乐播放器,首先我们先要知道用到的知识点有哪些. 1.MediaPlayer:可以播放本地资源.sd卡内存资源以及网络uri资源,在这里我们播放sd卡上的音乐资源. ...

  8. QT mp3音乐播放器实现框架,Qt鼠标事件,网络编程,QSqlite,Json解析,HTTP请求等

    QT mp3音乐播放器实现框架,Qt鼠标事件,网络编程,QSqlite,Json解析,HTTP请求等 框架搭建 UI设计 mp3.h mp3.cpp 隐藏窗口标题 最大化 最小化 关闭 框架搭建 .p ...

  9. 【雕爷学编程】Arduino动手做(74)---6MV2飞控GPS模块

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...

最新文章

  1. 初探可编程网关 Pipy
  2. 谷歌量子计算突破引爆学界,作者亲自回应质疑,国内专家点评
  3. AVCDecoderConfiguration语法格式分析
  4. 算法之智能搜索(下)
  5. mysql连接数紧张_Mysql 查看连接数,状态,最大并发数
  6. Css 特殊或不常用属性
  7. piwik抓取用户交互行为
  8. 趣味数据故事_坏数据的好故事
  9. 嵌入式linux mongodb,小白在Ubuntu安装mongoDB与mongo-c-driver
  10. 若你安全到家,来这儿报个平安吧
  11. html如何查找文件,如何查找网站上HTML的CLASS文件并下?如何查找网站上HTM 爱问知识人...
  12. rto初始化和计算_TCP系列15—重传—5、Linux中RTO的计算
  13. Error:java: Compilation failed: internal java compiler error or source 1.5 提升版本
  14. 思科路由器基本配置命令
  15. Nlite后期处理技术小结
  16. c语言窗口插入图片,c语言添加图片Word版
  17. 阿拉伯数字小写金额转换成中文大写金C额程序说明
  18. 三维智慧城市数字孪生应用可视化设计
  19. android 布局 字体大小,移动端页面布局及字体大小该如何设置
  20. Quartz技术简介

热门文章

  1. 新手入门吉他推荐,第一把吉他从这十款选绝不踩雷!初学者吉他选购指南【新手必看】
  2. 专业计算机工作室,计算机工作室策划书.docx
  3. FocalLoss原理通俗解释及其二分类和多分类场景下的原理与实现
  4. 室内定位程序_室内定位方案部署WIFI定位还是IBeacon定位
  5. 测试课堂:标准曲线制作、SEM检验、使用知识大全
  6. 星软车联显示服务器未返回gps,营口GPS——星软GPS车辆监控系统功能(一)
  7. 八维计算机学校死人,八维计算机学校教您使用联想一键恢复
  8. 中断处理过程示意图_ucore操作系统实验笔记 - Lab1
  9. 2020-12-18 Dataset之COCO数据集:COCO数据集的简介、下载
  10. Java内部类(匿名内部类)