Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Arduino.h"
- #include "SoftwareSerial.h"
- #include "DFRobotDFPlayerMini.h"
- SoftwareSerial mySoftwareSerial(D1, D2); // RX, TX
- DFRobotDFPlayerMini myDFPlayer;
- void printDetail(uint8_t type, int value);
- // use isOpen to only play one sound after opening
- bool isOpen = false;
- void setup()
- {
- mySoftwareSerial.begin(9600);
- Serial.begin(115200);
- pinMode(D6, OUTPUT);
- pinMode(D5, INPUT);
- Serial.println();
- Serial.println(F("DFRobot DFPlayer Mini Demo"));
- Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));
- if (!myDFPlayer.begin(mySoftwareSerial)) { //Use softwareSerial to communicate with mp3.
- Serial.println(F("Unable to begin:"));
- Serial.println(F("1.Please recheck the connection!"));
- Serial.println(F("2.Please insert the SD card!"));
- while(true);
- }
- Serial.println(F("DFPlayer Mini online."));
- myDFPlayer.setTimeOut(500); //Set serial communictaion time out 500ms
- //----Set volume----
- myDFPlayer.volume(20); //Set volume value (0~30).
- //----Set different EQ----
- myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);
- //----Set device we use SD as default----
- myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);
- myDFPlayer.randomAll(); //Random play all the mp3.
- }
- void loop()
- {
- static unsigned long timer = millis();
- if (millis() - timer > 100) {
- timer = millis();
- digitalWrite(D6, HIGH);
- delay(10);
- if(digitalRead(D5)){
- isOpen = false;
- }else{
- if(!isOpen){
- myDFPlayer.next();
- }
- isOpen = true;
- }
- Serial.println(digitalRead(D5));
- digitalWrite(D6, LOW);
- }
- if (myDFPlayer.available()) {
- printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Print the detail message from DFPlayer to handle different errors and states.
- }
- }
- void printDetail(uint8_t type, int value){
- switch (type) {
- case TimeOut:
- Serial.println(F("Time Out!"));
- break;
- case WrongStack:
- Serial.println(F("Stack Wrong!"));
- break;
- case DFPlayerCardInserted:
- Serial.println(F("Card Inserted!"));
- break;
- case DFPlayerCardRemoved:
- Serial.println(F("Card Removed!"));
- break;
- case DFPlayerCardOnline:
- Serial.println(F("Card Online!"));
- break;
- case DFPlayerPlayFinished:
- Serial.print(F("Number:"));
- Serial.print(value);
- Serial.println(F(" Play Finished!"));
- break;
- case DFPlayerError:
- 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;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment