> 文档中心 > MP3mini播放模块arduino<DFRobotDFPlayerMini.h>函数详解

MP3mini播放模块arduino<DFRobotDFPlayerMini.h>函数详解


意在将DFRobotDFPlayerMini.h库中的常用函数刨析完

本文的用意在于串口通讯的串口函数解析,不对硬件进行分析使用。

关于硬件方面使用 IO口 待有时间另作分析。

在这里插入图片描述
MP3mini播放模块arduino<DFRobotDFPlayerMini.h>函数详解

使用此库,开篇两样

#include "DFRobotDFPlayerMini.h"DFRobotDFPlayerMini myDFPlayer; //示例化对象名称

MP3mini模块是使用串口通讯,我这里使用虚拟串口

#include "DFRobotDFPlayerMini.h"#include #include DFRobotDFPlayerMini myDFPlayer;  //示例化对象名称SoftwareSerial BTserial(12, 13); // 建立SoftwareSerial对象,RX引脚2, TX引脚3

steup()函数中初始化使用

BTserial.begin(9600);myDFPlayer.begin(BTserial);    

先简单的测试通讯一下
接线方式如下

在这里插入图片描述

TF卡中将MP3文件放在根目录 MP3文件命名为 0003.mp3

/*【Arduino】66种传感器模块系列实验(85)实验八十五:开源 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);   //音量设定为20 myDFPlayer.loop(3);    //循环播放TF卡中 0003.mp3 文件}void loop(){}

下面我们对的库函数按照技术手册中的顺序进行逐一解释

在这里插入图片描述
在这里插入图片描述
假定我们已经实例化了一个 MP3mini模块的对象

#include "DFRobotDFPlayerMini.h"SoftwareSerial mySoftwareSerial(2, 3); DFRobotDFPlayerMini myDFPlayer; //示例化对象名称void setup() {  mySoftwareSerial.begin(9600);  myDFPlayer.begin(mySoftwareSerial);}

无返回值

myDFPlayer.next() //下一曲myDFPlayer.previous()    //上一曲myDFPlayer.play(3)//指定曲目(NUM) 1-2999  参数添入 int 型参数 myDFPlayer.volumeUp()    //音量+myDFPlayer.volumeDown()  //音量- myDFPlayer.volume(20)    //指定音量 0-30myDFPlayer.EQ(0)  // 指定 EQ 0/1/2/3/4/5    参数功能  Normal/Pop/Rock/Jazz/Classic/Bass (这个还没有用过,等我知道怎么用了再详细解释)myDFPlayer.loop(3)//单曲循环指定曲目播放 0-2999 myDFPlayer.outputDevice(2)//指定播放设1/2/3/4/5     参数功能  U/SD/AUX/SLEEP/FLASHmyDFPlayer.sleep()//进入睡眠 -- 低功耗myDFPlayer.reset()//模块复位myDFPlayer.start()//播放myDFPlayer.pause()//暂停myDFPlayer.playFolder(1,1)  //指定文件夹播放 1-10(需要自己设定) 前面为文件夹,后面为文件夹中的文件名

关于指定文件加播放,指定MP3文件。这个地方要详细说一下,当时第一次调试时就陷入了一个很大的误区。做后发现是文件夹的命名不对。
1、文件夹的命名,为两位是两位数字 比如 01, 02····等等
2、文件夹要放在文件根目录。
3、有的说要放在一个mp3的文件夹中,经过我的实测,其实没有必要。当然我的TF卡中只有播放用的文件,没有其他。如果你的TF卡中有其他的文件夹,那可能就说不准了。
命名方式如以下

在这里插入图片描述

文件的命名为前三位为数字。
如:

MP3mini播放模块arduino<DFRobotDFPlayerMini.h>函数详解
这样,playFolder函数就能准确找到指定问价夹中的指定文件了
文件夹名称(1 ~ 99);文件名(1 ~ 255)
比如,我们想播放 02文件夹中的第3个MP3
我们就可以这么写

myDFPlayer.playFolder(2,3)

继续函数解释

myDFPlayer.outputSetting(1,2)   //扩音设置(无) 参数1:bool型 [DH=1:开扩音] 参数2:uint8_t型 [DL:设置增益0-31]myDFPlayer.enableLoopAll()      //全部循环播放myDFPlayer.disableLoopAll()     //停止循环播放myDFPlayer.playMp3Folder(1)     //指定 MP3文件夹曲目 0--9999myDFPlayer.advertise(1)  //插播广告 0--9999     myDFPlayer.playLargeFolder(1,2) //用法和playFolder一样,这个支持的更多 myDFPlayer.stopAdvertise()      //停止插播,播放背景myDFPlayer.stop() //停止播放myDFPlayer.loopFolder(2) //指定文件夹循环播放 参数为指定文件夹中的名字myDFPlayer.randomAll()   //随机播放myDFPlayer.enableLoop()  //循环播放关闭myDFPlayer.disableLoop() //循环播放开启myDFPlayer.enableDAC()   //关闭DACmyDFPlayer.disableDAC()  //开启DAC

查询类型函数,有返回值,都是返回 int 类型的数据

myDFPlayer.readState()   //查询当前状态myDFPlayer.readVolume()  //查询当前音量myDFPlayer.readEQ()      //查询当前 EQmyDFPlayer.readFileCounts(DFPLAYER_DEVICE_SD) //查询文件数目//  DFPLAYER_DEVICE_U_DISK :查询 UDISK 的总文件数//  DFPLAYER_DEVICE_SD     : 查询 TF 卡的总文件数//  DFPLAYER_DEVICE_FLASH  : 查询 FLASH 的总文件数myDFPlayer.readCurrentFileNumber(DFPLAYER_DEVICE_SD) //查询当前曲目//  DFPLAYER_DEVICE_U_DISK :查询 UDISK 的当前曲目//  DFPLAYER_DEVICE_SD     : 查询 TF 卡的当前曲目//  DFPLAYER_DEVICE_FLASH  : 查询 FLASH 的当前曲目myDFPlayer.readFileCountsInFolder(2) //查询指定文件夹里的文件总数myDFPlayer.readFolderCounts() //查询总文件数

以上,就是我整理的 DFRobotDFPlayerMini.h库的函数整理