Проблема с воспроизведением 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?