DFPlayer Tutorial
DFPlayer Tutorial
DFPlayer Tutorial
com/product-
1121.html)
(https://www.dfrob
ot.com/product-
1121.html)
Introductio
n
The DFPlayer Mini
MP3 Player For
Arduino
(https://www.dfro
bot.com/product-
1121.html) is a
small and low
price MP3 module
with an simplified
output directly to
the speaker. The module can be used as a stand alone module with attached
battery, speaker and push buttons or used in combination with an Arduino
UNO (https://www.dfrobot.com/product-610.html) or any other with RX/TX
capabilities.
Specification
supported sampling rates (kHz): 8/11.025/12/16/22.05/24/32/44.1/48
24 -bit DAC output support for dynamic range 90dB SNR support 85dB
24 bit DAC output, support for dynamic range 90dB , SNR support 85dB
fully supports FAT16 , FAT32 file system, maximum support 32G of the TF
card, support 32G of U disk, 64M bytes NORFLASH
Application
Car navigation voice broadcast;
Road transport inspectors, toll stations voice prompts;
Railway station, bus safety inspection voice prompts;
Electricity, communications, financial business hall voice prompts;
Vehicle into and out of the channel verify that the voice prompts;
The public security border control channel voice prompts;
Multi-channel voice alarm or equipment operating guide voice;
The electric tourist car safe driving voice notices;
Electromechanical equipment failure alarm;
Fire alarm voice prompts;
The automatic broadcast equipment, regular broadcast.
Pin Map
Work Mode
1. Serial Mode
Support for asynchronous serial communication mode via PC serial sending
commands Communication Standard:9600 bps Data bits :1 Checkout :none
Flow Control :none
Instruction Description
Refer diagram
3. I/O Mode
Here comes the most simple way to use this module.
Refer diagram
note: short time press means pre/next,and long time press means vol- ,vol +
Connection Diagram
Note: For simple use ,the upper diagram is ready,But if you find the noise is
quite loud, then you could attach an 1K resistor to the TX pin.
NOTE: If you are using Mac OS X to copy the mp3, the file system will
automatically add hidden files like: "._0001.mp3" for index, which this
module will handle as valid mp3 files. It is really annoying. So you can run
following command in terminal to eliminate those files.
dot_clean /Volumes/<SDVolumeName>
Sample Code
We've created an Arduino library for DFPlayer Mini to simplify the method for
you to make it work. Connect the hardware as the picture above shown and
play with the sample code. You can download the latest library here:
DFRobotDFPlayerMini
(https://github.com/DFRobot/DFRobotDFPlayerMini/archive/1.0.3.zip).
***************************************************
This example shows the basic function of library for DFPlayer.
Created 2016-12-07
By [Angelo qiao]([email protected])
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
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)"));
}
Serial.println(F("DFPlayer Mini online."));
void loop()
{
static unsigned long timer = millis();
if (myDFPlayer.available()) {
printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Print the d
}
}
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;
}
}
Sample code "FullFunction", including all the functions. Please read the
comments and documents in detail
/***************************************************
DFPlayer - A Mini MP3 Player For Arduino
<https://www.dfrobot.com/index.php?route=product/product&product_id=112
***************************************************
This example shows the all the function of library for DFPlayer.
Created 2016-12-07
By [Angelo qiao]([email protected])
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
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)"));
}
Serial.println(F("DFPlayer Mini online."));
//----Set volume----
myDFPlayer.volume(10); //Set volume value (0~30).
myDFPlayer.volumeUp(); //Volume Up
myDFPlayer.volumeDown(); //Volume Down
//----Mp3 control----
// myDFPlayer.sleep(); //sleep
// myDFPlayer.reset(); //Reset the module
// myDFPlayer.enableDAC(); //Enable On-chip DAC
// myDFPlayer.disableDAC(); //Disable On-chip DAC
// myDFPlayer.outputSetting(true, 15); //output setting, enable the out
//----Mp3 play----
myDFPlayer.next(); //Play next mp3
delay(1000);
myDFPlayer.previous(); //Play previous mp3
delay(1000);
myDFPlayer.play(1); //Play the first mp3
delay(1000);
DFPl l (1) //L th fi t 3
myDFPlayer.loop(1); //Loop the first mp3
delay(1000);
myDFPlayer.pause(); //pause the mp3
delay(1000);
myDFPlayer.start(); //start the mp3 from the pause
delay(1000);
myDFPlayer.playFolder(15, 4); //play specific mp3 in SD:/15/004.mp3;
delay(1000);
myDFPlayer.enableLoopAll(); //loop all mp3 files.
delay(1000);
myDFPlayer.disableLoopAll(); //stop loop all mp3 files.
delay(1000);
myDFPlayer.playMp3Folder(4); //play specific mp3 in SD:/MP3/0004.mp3;
delay(1000);
myDFPlayer.advertise(3); //advertise specific mp3 in SD:/ADVERT/0003.m
delay(1000);
myDFPlayer.stopAdvertise(); //stop advertise
delay(1000);
myDFPlayer.playLargeFolder(2, 999); //play specific mp3 in SD:/02/004.
delay(1000);
myDFPlayer.loopFolder(5); //loop all mp3 files in folder SD:/05.
delay(1000);
myDFPlayer.randomAll(); //Random play all the mp3.
delay(1000);
myDFPlayer.enableLoop(); //enable loop.
delay(1000);
myDFPlayer.disableLoop(); //disable loop.
delay(1000);
//----Read imformation----
Serial.println(myDFPlayer.readState()); //read mp3 state
Serial.println(myDFPlayer.readVolume()); //read current volume
Serial.println(myDFPlayer.readEQ()); //read EQ setting
Serial.println(myDFPlayer.readFileCounts()); //read all file counts in
Serial.println(myDFPlayer.readCurrentFileNumber()); //read current pla
Serial.println(myDFPlayer.readFileCountsInFolder(3)); //read fill coun
}
void loop()
{
static unsigned long timer = millis();
if (myDFPlayer.available()) {
printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Print the d
}
}
NOTE: The folder name needs to be mp3, placed under the SD card root
directory, and the mp3 file name needs to be 4 digits, for example,
"0001.mp3", placed under the mp3 folder. If you want to name it in Both
English and Chinese, you can add it after the number, for example,
"0001hello.mp3" or "0001后来.mp3".