Библиотека Arduino: DFRobotDFPlayerMini - PullRequest
0 голосов
/ 31 января 2020

У меня проблема с кодом Arduino. Библиотека DFRobotDFPlayerMini. при нажатии кнопки воспроизводится музыка c, а при повторном нажатии она приостанавливается. У меня musi c, играющий 0,5 секунды, затем повторяется. заранее спасибо.

#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();
}

Ответы [ 2 ]

0 голосов
/ 03 февраля 2020

Проблема, с которой вы столкнулись, не связана с библиотекой, но вы не отменили свою кнопку. Для получения подробной информации о разборе текста вы можете обратиться к этому учебному пособию по Arduino . Самая простая стратегия называется «подожди и посмотри», схема выглядит так:

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();
    }
  }
}
0 голосов
/ 01 февраля 2020

Возможно, это не единственная ваша проблема, но в l oop if (pl = 1), вероятно, должно быть if (pl == 1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...