DFPlayer Mini模块
日期:2021-04-25 21:22:41 / 人气:
简介
DFPlayer Mini是一款小巧且价格低廉的MP3模块,可以直接接驳扬声器。
模块配合供电电池、扬声器、按键可以单独使用,也可以通过串口控制,作为Arduino UNO或者是任何有串口的单片机的一个模块。
模块本身完美的集成了MP3、WAV、WMA的硬解码。
同时软件支持TF卡驱动,支持FAT16、FAT32文件系统。
通过简单的串口指令即可完成播放指定的音乐,以及如何播放音乐等功能,无需繁琐的底层操作,使用方便,稳定可靠。
产品参数
支持采样率(KHz):8/11.025/12/16/22.05/24/32/44.1/48
24位DAC输出,动态范围支持:90dB,信噪比支持:85dB
完全支持FAT16、FAT32文件系统,最大支持32G的TF卡,支持32G的U盘、64M字节的NORFLASH
多种控制模式可选。IO控制模式、串口模式、AD按键控制模式
广播语插播功能,可以暂停正在播放的背景音乐。广告播放完毕回到背景音继续播放
音频数据按文件夹排序,最多支持100个文件夹,每隔文件夹可以分配255首曲目
30级音量可调,6级EQ可调
引脚说明
引脚号 | 引脚名称 | 功能描述 | 备注 |
1 | VCC | 模块电源输入 | 3.3V—5V,建议5V,不要超过5.2V |
2 | RX | UART串行数据输入 | |
3 | TX | UART串行数据输出 | |
4 | DAC_R | 音频输出右声道 | 驱动耳机、功放 |
5 | DAC_L | 音频输出左声道 | 驱动耳机、功放 |
6 | SPK2 | 接小喇叭 | 驱动小于3W喇叭 |
7 | GND | 地 | 电源地 |
8 | SPK1 | 接小喇叭 | 驱动小于3W喇叭 |
9 | IO1 | 触发口 | 默认上一曲(长按音量减) |
10 | GND | 地 | 电源地 |
11 | IO2 | 触发口 | 默认下一曲(长按音量加) |
12 | ADKEY1 | AD口1 | 当触发时是第一首(长按循环第一首) |
13 | ADKEY2 | AD口2 | 当触发时是第五首(长按循环第五首) |
14 | USB+ | USB+ DP | 接U盘或插电脑的USB口 |
15 | USB- | USB- DM | 接U盘或插电脑的USB口 |
16 | Busy | 播放状态 | 有音频,输出低;无音频,输出高 |
串口模式
模块支持异步串口通讯模式,通过串口接受控制命令
串口指令格式
指令名称 | 对应功能 | 功能描述 |
$S | 起始位0x7E | 每条命令反馈均以$开头,即0x7E |
VER | 版本 | 版本信息[目前默认为0xFF] |
Len | len后字节个数 | 校验和不计算在内 |
CMD | 命令字 | 表示具体的操作,比如播放/暂停等等 |
Feedback | 命令反馈 | 是否需要反馈信息,1反馈,0不反馈 |
para1 | 参数1 | 查询的数据高字节(比如歌曲序号) |
para2 | 参数2 | 查询的数据低字节 |
checksum | 校验和[占两个字节] | 累加和校验[不计起始位$] |
$0 | 结束位 | 结束位0xEF |
举个例子,如果我们制定播放NOR FLASH,就需要发送:7E FF 06 09 00 00 04 FF DD EF,数据长度为6,这6个字节分别是[FF 06 09 00 00 04]。 不计算起始、结束、和校验。再然后对得到的结果进行取反。
串口控制指令
CMD命令(指令) | 对应的功能 | 参数(16位) |
0×01 | 下一曲 | |
0×02 | 上一曲 | |
0×03 | 指定曲目(NUM) | 1-2999 |
0×04 | 音量+ | |
0×05 | 音量- | |
0×06 | 指定音量 | 0-30 |
0×07 | 指定EQ 0/1/2/3/4/5 | Normal/Pop/Rock/Jazz/Classic/Bass |
0×08 | 单曲循环指定曲目播放 | 1-2999 |
0×09 | 指定播放设备 1/2/3/4/5 | U盘/SD/AUX/SLEEP/FLASH |
0x0A | 进入休眠——低功耗 | |
0x0B | 保留 | |
0x0C | 模块复位 | |
0x0D | 播放 | |
0x0E | 暂停 | |
0x0F | 指定文件夹播放 | 1-10(需要自己设定) |
0×10 | 扩音设置(无) | [DH=1:开扩音][DL:设置增益0-31] |
0×11 | 全部循环播放 | [1:循环播放][0:停止循环播放] |
0×12 | 指定MP3文件夹曲目 | 1-9999 |
0×13 | 插播广告 | 1-9999 |
0×14 | 支持15个文件夹 | 见下面的详细说明 |
0×15 | 停止播放,播放背景 | |
0×16 | 停止播放 |
串口查询指令
CMD命令详解(指令) | 对应的功能 | 参数(16位) |
0x3C | STAY | |
0x3D | STAY | |
0x3E | STAY | |
0x3F | 发送初始化参数 | 0-0x0F(低四位每位代表一种设备) |
0×40 | 返回错误,请求重发 | |
0×41 | 应答 | |
0×42 | 查询当前状态 | |
0×43 | 查询当前音量 | |
0×44 | 查询当前EQ | |
0×45 | 查询当前播放模式 | 该版本保留此功能 |
0×46 | 查询当前软件版本 | 该版本保留此功能 |
0×47 | 查询UDISK的总文件数 | |
0×48 | 查询TF卡的总文件数 | |
0×49 | 查询FLASH卡的总文件数 | |
0x4A | 保留 | |
0x4B | 查询UDISK的当前曲目 | |
0x4C | 查询TF的当前曲目 | |
0x4D | 查询FLASH的当前曲目 |
AD按键模式
模块还支持AD按键控制方式,取代了传统了矩阵键盘的接法,这样做的好处是充分利用了MCU越来越强大的AD功能。设计简约而不简单,我们模块默认配置2个AD口,20个按键的阻值分配。
按键使用示意原理图
IO模式
本模块也支持简单的IO模式
使用教程
连线图
样例代码
注意:文件夹命名需要是mp3,放置在SD卡根目录下,而mp3文件命名需要是4位数字,例如"0001.mp3",放置在mp3文件夹下。 如需中英文命名,可以添加在数字后,例如"0001hello.mp3"或者"0001后来.mp3"。
库文件下载链接:DFPlayer_Mini_mp3
编辑:haiyunlh