让我们一起爱米兰
站内搜搜:
移动设备
请扫描二维码
或访问
m.milan100.com
您所在的位置 -> 米兰百分百 -> arduino -> DFPlayer Mini模块(MP3-TF-16P)与arduino使用方法

DFPlayer Mini模块(MP3-TF-16P)与arduino使用方法

点击数:14477 发表时间:2016-06-09 22:16:07 作者: 来源链接:
分享到:
分享到微信

简介

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可调

引脚说明



DFPlayer_Mini_Pin

引脚号引脚名称功能描述备注1VCC模块电源输入3.3V—5V,建议5V,不要超过5.2V2RXUART串行数据输入3TXUART串行数据输出4DAC_R音频输出右声道驱动耳机、功放5DAC_L音频输出左声道驱动耳机、功放6SPK2接小喇叭驱动小于3W喇叭7GND地电源地8SPK1接小喇叭驱动小于3W喇叭9IO1触发口默认上一曲(长按音量减)10GND地电源地11IO2触发口默认下一曲(长按音量加)12ADKEY1AD口1当触发时是第一首(长按循环第一首)13ADKEY2AD口2当触发时是第五首(长按循环第五首)14USB+USB+ DP接U盘或插电脑的USB口15USB-USB- DM接U盘或插电脑的USB口16Busy播放状态有音频,输出低;无音频,输出高


资料说明

串口模式

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

  • 串口指令格式

指令名称对应功能功能描述
$S起始位0x7E每条命令反馈均以$开头,即0x7E
VER版本版本信息[目前默认为0xFF]
Lenlen后字节个数校验和不计算在内
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/5Normal/Pop/Rock/Jazz/Classic/Bass
0x08单曲循环指定曲目播放1-2999
0x09指定播放设备 1/2/3/4/5U盘/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位)
0x3CSTAY
0x3DSTAY
0x3ESTAY
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个按键的阻值分配。

  • 按键使用示意原理图

DFPlayer_Mini

IO模式

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

DFPlayer_Mini

使用教程

连线图

DFPlayer_Mini


样例代码

注意文件夹命名需要是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 (); 
 */

疑难解答

问 :Arduino控制DFPlayer mini时,喇叭有杂音,如何处理?

  • 答:在TX,RX与MP3模块的RX,TX之间连一个1k电阻。因为DFPlayer Mini模块工作电压应该是3.3V,而主控板传入电压为5V,因此需要1K左右电阻分压。


问 :SD卡中的文件和文件夹名字有什么格式要求吗?

  • 答:函数mp3_play (1); 播放文件的格式为"0001***.mp3(或支持其他格式)". 您可能需要注意这些:

(1). 该音频文件的名称应该命名一个四位数字开始,如:

  • 0001.mp3

  • 0002Chasing The Sun.mp3

  • 0003.mp3

  • 0004Try.mp3

  • 0010FourFiveSeconds.mp3

MP3-1.png

(2).该音频文件应该放在“MP3”'它坐落在TF卡的根目录'文件夹;

MP3-2.png


问 :想用下插播广告的功能,请问有样例吗?

11
很 好
0
一 般
0
差 劲
热门新闻
相关文章
上一篇: Arduino中断的使用
下一篇: Arduino 与 Raspberry Pi(树莓派)的内存及性能对比
评论区
匿名

返回首页 | 收藏本页 | 回到顶部
Copyright 2010. 米兰百分百 Powered By Bridge.
京ICP备15050557号