The title of your thread has been edited to make it more informative. Please make sure that you use a title that gives some idea what is in the post. Very vague titles will get much less attention and can be frustrating to potential helpers. —Moderator
Hello,
I'm doing a project using arduino uno, dfplayer and ultrasonic sensor So that the sensor triggers the mp3 player by 50cm or so, the music will play.
I built everything wiring OK connections OK
I found the following sketch on website and copied it
But it doesn't work!!!
I receive message from serial monitor saying dfplayer is not connected please see photo
Can someone have a look at the sketch please if there's something wrong in it?
Would you please try to correct it if so?
Thank you for your help and effort.
Here is the sketch :
Mod: please use Code tags on the Insert Option.
Hello,
I'm doing a project using arduino uno, dfplayer and ultrasonic sensor So that the sensor triggers the mp3 player by 50cm or so, the music will play.
I built everything wiring OK connections OK
I found the following sketch on website and copied it
But it doesn't work!!!
I receive message from serial monitor saying dfplayer is not connected please see photo
Can someone have a look at the sketch please if there's something wrong in it?
Would you please try to correct it if so?
Thank you for your help and effort.
Here is the sketch :
Mod: please use Code tags on the Insert Option.
C-like:
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
const byte SENSOR_COUNT = 1;
byte triggerPins[SENSOR_COUNT] = {9};
byte echoPins[SENSOR_COUNT] = {13};
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);
void setup()
{
mySoftwareSerial.begin(9600);
Serial.begin(9600);
for( byte i=0; i<SENSOR_COUNT; i++ )
{
pinMode(triggerPins, OUTPUT);
pinMode(echoPins, 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.volume(30); //Set volume value. From 0 to 30
}
int currentSound = 1;
void loop()
{
for( byte i=0; i<SENSOR_COUNT; i++ ) // loop through all distance sensors
{
if( detectPresence(i) ) // check if there is an object near it
{
if(currentSound!=i) // check that it's a different sensor than the one that was last triggered
{
Serial.print("play song number ");
Serial.println(i);
myDFPlayer.play(1); // play song nr `i+1`
}
currentSound = 1;
}
}
if (myDFPlayer.available()) {
printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Print the detail message from DFPlayer to handle different errors and states.
}
}
// detectPresence will return TRUE if there is an object close to it.
bool detectPresence(byte sensorNr)
{
if( sensorNr>=SENSOR_COUNT )
return false;
long duration, distance;
//digitalWrite(triggerPins[sensorNr], LOW); // Added this line
//delayMicroseconds(10); // Added this line
digitalWrite(triggerPins[sensorNr], HIGH);
delayMicroseconds(15); // Added this line
digitalWrite(triggerPins[sensorNr], LOW);
duration = pulseIn(echoPins[sensorNr], HIGH);
distance = duration/58;
return (distance > 1 && distance <= 8); { //distance in centimeter, fx between 1 - 8 cm
}
}
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;
}
}
Attachments
-
2.5 MB Views: 6
-
2.6 MB Views: 6
Last edited by a moderator: