外观
简介
- 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位) |
0x01 |
下一曲 |
|
0x02 |
上一曲 |
|
0x03 |
指定曲目(NUM) |
1-2999 |
0x04 |
音量+ |
|
0x05 |
音量- |
|
0x06 |
指定音量 |
0-30 |
0x07 |
指定EQ 0/1/2/3/4/5 |
Normal/Pop/Rock/Jazz/Classic/Bass |
0x08 |
单曲循环指定曲目播放 |
1-2999 |
0x09 |
指定播放设备 1/2/3/4/5 |
U盘/SD/AUX/SLEEP/FLASH |
0x0A |
进入休眠——低功耗 |
|
0x0B |
保留 |
|
0x0C |
模块复位 |
|
0x0D |
播放 |
|
0x0E |
暂停 |
|
0x0F |
指定文件夹播放 |
1-10(需要自己设定) |
0x10 |
扩音设置(无) |
[DH=1:开扩音][DL:设置增益0-31] |
0x11 |
全部循环播放 |
[1:循环播放][0:停止循环播放] |
0x12 |
指定MP3文件夹曲目 |
1-9999 |
0x13 |
插播广告 |
1-9999 |
0x14 |
支持15个文件夹 |
见下面的详细说明 |
0x15 |
停止播放,播放背景 |
|
0x16 |
停止播放 |
|
串口查询指令
CMD命令详解(指令) |
对应的功能 |
参数(16位) |
0x3C |
STAY |
|
0x3D |
STAY |
|
0x3E |
STAY |
|
0x3F |
发送初始化参数 |
0-0x0F(低四位每位代表一种设备) |
0x40 |
返回错误,请求重发 |
|
0x41 |
应答 |
|
0x42 |
查询当前状态 |
|
0x43 |
查询当前音量 |
|
0x44 |
查询当前EQ |
|
0x45 |
查询当前播放模式 |
该版本保留此功能 |
0x46 |
查询当前软件版本 |
该版本保留此功能 |
0x47 |
查询UDISK的总文件数 |
|
0x48 |
查询TF卡的总文件数 |
|
0x49 |
查询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
/*
* Copyright: DFRobot
* name: DFPlayer_Mini_Mp3 sample code
* Author: lisper <lisper.li@dfrobot.com>
* Date: 2014-05-30
* Description: sample code for DFPlayer Mini, this code is test on Uno
* note: mp3 file must put into mp3 folder in your tf card
*/
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
void setup () {
Serial.begin (9600);
mp3_set_serial (Serial); //set Serial for DFPlayer-mini mp3 module
mp3_set_volume (15);
}
void loop () {
mp3_play (1);
delay (6000);
mp3_next ();
delay (6000);
mp3_prev ();
delay (6000);
mp3_play (4);
delay (6000);
}
/*
mp3_play (); //start play
mp3_play (5); //play "mp3/0005.mp3"
mp3_next (); //play next
mp3_prev (); //play previous
mp3_set_volume (uint16_t volume); //0~30
mp3_set_EQ (); //0~5
mp3_pause ();
mp3_stop ();
void mp3_get_state (); //send get state command
void mp3_get_volume ();
void mp3_get_u_sum ();
void mp3_get_tf_sum ();
void mp3_get_flash_sum ();
void mp3_get_tf_current ();
void mp3_get_u_current ();
void mp3_get_flash_current ();
void mp3_single_loop (boolean state); //set single loop
void mp3_DAC (boolean state);
void mp3_random_play ();
*/
疑难解答
(1). 该音频文件的名称应该命名一个四位数字开始,如:
0001.mp3
0002Chasing The Sun.mp3
0003.mp3
0004Try.mp3
0010FourFiveSeconds.mp3
(2).该音频文件应该放在“MP3”'它坐落在TF卡的根目录'文件夹;
本文转自:http://www.ncnynl.com/archives/201606/190.html 创客制作 ,整理自 DFRobot wiki