Проблема с воспроизведением mp3 в библиотеке DFRobotDFPlayerMini
- Войдите на сайт для отправки комментариев
Сб, 01/02/2020 - 14:22
Здравствуйте, у меня проблема с кодом ардуино. Библиотека DFRobotDFPlayerMini (https://github.com/DFRobot/DFRobotDFPlayerMini).
при нажатии на кнопку музыка должна играть, при повторном нажатии пауза, но при включении у меня его заедет до того как я нажимаю на кнопку и он проигрывает 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();
}
А что означают строки №№20-22?
Здравствуйте, 20-22 строку выполняют цикл проверки сбоев в softserial.
Точно? А если подумать? Например, можете сказать когда и при каких условиях этот цикл заканчивается?
я пробовал убирать его, не помогло.
Я не спрашиваю Вас что Вы пробовали убирать, а что не пробовали. Я Вас спросил:
1. что означают строки №№20-22?
А когда Вы ответили что-то про цикл проверки, я спросил
2. когда и при каких условиях этот цикл заканчивается?
Ответа пока не получил.
заканчивается при значении 0(false), когда все исправно работает.
Цикл while(true) не заканчивается никогда. Если программа на него попадёт, то останется в нём навечно. Запомните это.
Следующий вопрос. Допустим, что условие в строке №33 выполнилось. Тогда в строке №34 переменная станет butt_flag равной 1. Вопрос: где, когда и при каких обстоятельствах она снова станет равна 0?