Программирование плеера
- Войдите на сайт для отправки комментариев
Втр, 24/11/2015 - 15:55
#include <SoftwareSerial.h> #include <DFPlayer_Mini_Mp3.h> const int f = 8; const int w = 9; void setup() { Serial.begin (9600); mp3_set_serial (Serial); //set Serial for DFPlayer-mini mp3 module delay (100); mp3_play (3); mp3_set_volume (15); } void loop() { if (digitalRead(w)== LOW) { mp3_play (1); } else { mp3_play (3); } if (digitalRead(f)== LOW) { mp3_play (2); } else { mp3_play (3); } }
Вот такой код. Должен по идее работать так - при включении играет трек 3, а при нажатии кнопок треки 2 или 1, после отжатия кнопок должен опять возвращаться на трек 3. Но что то не работает.(((
я когда игрался плеером заметил что между командами нужно задержку ставить поставьте задержку 100мс между командами вечером проверю ваш код если будет время
блин вы американец сразу неувидел кто в сетупе пины на вход настраивать будет пушкин чтоли и подтяжку к +5В либо програмно либо резистором
Что не работает? Не играет при включнии? Не переключается на другой трек при нажатии кнопки? Не возвращается к треку 3 после отпускания кнопки?
Когда включаешь ничего вообще не происходит. Без елсе все работает но после отпускания кнопки продолжает играть тот же трек который включался при нажатии кнопки. С елзе вообще не включается. Резисторы стоят.
Вот этот код работает - при нажатии на одну из кнопок влючается один из треков
Как можно сделать так. Чтобы при нажатии кнопки шел всего один импульс, команда. Например в этих строчках
если нажать кнопку сигнал будет постоянно проигрываться в лупе, то есть команда
будет постоянно запускаться, тем самым включая трек много раз в секунду, а надо так сделать, чтобы когда нажата кнопка команда подавалась всего один раз и луп обрабатывался дальше, или это только с аппаратными прерываниями возможно?
Заведите переменную состояния (или флаг), индицирующую текущий режим: если режим "0" и нажата кнопка, пускаем воспроизведение и переопределяем режим на "1". Если режим "1", ничего не делаем, пока не будет отпущена кнопка (или пока не закончится мелодия - это уж как порложено по логике программы), а потом переопределяем обратно в "0".