Arduino库:DFRobotDFPlayerMini
我对Arduino密码有问题。DFRobotDFPlayerMini库。当您按下按钮时,音乐播放,当您再次按下按钮时,音乐暂停。我让音乐播放0.5秒,然后重复播放。先谢谢你Arduino库:DFRobotDFPlayerMini,arduino,Arduino,我对Arduino密码有问题。DFRobotDFPlayerMini库。当您按下按钮时,音乐播放,当您再次按下按钮时,音乐暂停。我让音乐播放0.5秒,然后重复播放。先谢谢你 #include "SoftwareSerial.h" #define BTN_PIN 3 #include "Arduino.h" #include "DFRobotDFPlayerMini.h" boolean butt_flag = 0; boolean butt; boolean pl; SoftwareSeria
#include "SoftwareSerial.h"
#define BTN_PIN 3
#include "Arduino.h"
#include "DFRobotDFPlayerMini.h"
boolean butt_flag = 0;
boolean butt;
boolean pl;
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void setup()
{
butt = !digitalRead(3);
mySoftwareSerial.begin(9600);
Serial.begin(115200);
if (!myDFPlayer.begin(mySoftwareSerial)) {
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);
}
}
Serial.println(F("DFPlayer Mini online."));
pl = 0;
myDFPlayer.volume(30);
myDFPlayer.play(1);
}
void loop()
{
butt = !digitalRead(3);
if (butt == 1 && butt_flag == 0) {
butt_flag = 1;
pl = !pl;
}
if (pl = 1)
myDFPlayer.play();
else
myDFPlayer.pause();
}
这可能不是你唯一的问题,但在循环中
if(pl=1)
可能应该是if(pl==1)
您遇到的问题与库无关,但您没有取消按钮的抖动。有关去抖动的详细信息,请参阅。最简单的策略称为“等着瞧”,提纲如下:
void loop()
{
if (!digitalRead(3)) {
// the button seems to be pressed, but wait...
delay(200);
if (!digitalRead(3)) { // check it again
// the button IS pressed, and change player state
pl = !pl;
if (pl = 1)
myDFPlayer.play();
else
myDFPlayer.pause();
}
}
}