Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /***************************************************
- DFPlayer - A Mini MP3 Player For Arduino
- <https://www.dfrobot.com/product-1121.html>
- ***************************************************
- This example shows the basic function of library for DFPlayer.
- Created 2016-12-07
- By [Angelo qiao](Angelo.qiao@dfrobot.com)
- GNU Lesser General Public License.
- See <http://www.gnu.org/licenses/> for details.
- All above must be included in any redistribution
- ****************************************************/
- /***********Notice and Trouble shooting***************
- 1.Connection and Diagram can be found here
- <https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299#Connection_Diagram>
- 2.This code is tested on Arduino Uno, Leonardo, Mega boards.
- ****************************************************/
- #include "Arduino.h"
- #include "SoftwareSerial.h"
- #include "DFRobotDFPlayerMini.h"
- SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
- DFRobotDFPlayerMini myDFPlayer;
- void printDetail(uint8_t type, int value);
- int buttonState;
- int lastButtonState = HIGH;
- unsigned long lastDebounceTime = 0;
- int buttonState2;
- int lastButtonState2 = HIGH;
- unsigned long lastDebounceTime2 = 0;
- int buttonState3;
- int lastButtonState3 = HIGH;
- unsigned long lastDebounceTime3 = 0;
- int buttonState4;
- int lastButtonState4 = HIGH;
- unsigned long lastDebounceTime4 = 0;
- 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)"));
- 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){
- delay(0); // Code to compatible with ESP8266 watch dog.
- }
- }
- Serial.println(F("DFPlayer Mini online."));
- pinMode (5, INPUT_PULLUP);
- pinMode (4, INPUT_PULLUP);
- pinMode (3, INPUT_PULLUP);
- pinMode (2, INPUT_PULLUP);
- myDFPlayer.volume(10); //Set volume value. From 0 to 30
- }
- void loop()
- {
- int reading = digitalRead (5);
- if (reading != lastButtonState){
- lastDebounceTime = millis () ;
- }
- if ((millis() - lastDebounceTime) > 50){
- if (reading !=lastButtonState){
- buttonState = reading;
- if (buttonState ==LOW) {
- myDFPlayer.play(1);
- }
- }
- }
- lastButtonState = reading;
- int reading2 = digitalRead (4);
- if (reading2 != lastButtonState2){
- lastDebounceTime2 = millis () ;
- }
- if ((millis() - lastDebounceTime2) > 50){
- if (reading2 !=lastButtonState2){
- buttonState2 = reading2;
- if (buttonState2 ==LOW) {
- myDFPlayer.play(2);
- }
- }
- }
- lastButtonState2 = reading2;
- int reading3 = digitalRead (3);
- if (reading3 != lastButtonState3){
- lastDebounceTime3 = millis () ;
- }
- if ((millis() - lastDebounceTime3) > 50){
- if (reading3 !=lastButtonState3){
- buttonState3 = reading3;
- if (buttonState3 ==LOW) {
- myDFPlayer.play(3);
- }
- }
- }
- lastButtonState3 = reading3;
- int reading4 = digitalRead (2);
- if (reading4 != lastButtonState4){
- lastDebounceTime4 = millis () ;
- }
- if ((millis() - lastDebounceTime4) > 50){
- if (reading4 !=lastButtonState4){
- buttonState4 = reading4;
- if (buttonState4 ==LOW) {
- myDFPlayer.play(4);
- }
- }
- }
- lastButtonState4 = reading4;
- }
- 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 DFPlayerUSBInserted:
- Serial.println("USB Inserted!");
- break;
- case DFPlayerUSBRemoved:
- Serial.println("USB Removed!");
- 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
Advertisement