DFPlayer команды
- Войдите на сайт для отправки комментариев
Ср, 19/12/2018 - 21:45
Здравствуйте!
Помогите, пожалуйста, новичку разобраться.
мне надо воспроизвести песни в случайном порядке одна за одной.
пробывал кучу библеотек там в них команда на воспроизведение такая есть но не работает или я не догоняю что к чему или подскажите пример busy pin ()
#include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" SoftwareSerial mySoftwareSerial(10, 11); // RX, TX DFRobotDFPlayerMini myDFPlayer; void printDetail(uint8_t type, int value); void setup() { mySoftwareSerial.begin(9600); Serial.begin(115200); Serial.println(); Serial.println(F("DFRobot DFPlayer Mini Demo")); Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)")); if (!myDFPlayer.begin(mySoftwareSerial)) { //Use softwareSerial to communicate with mp3. 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); } Serial.println(F("DFPlayer Mini online.")); myDFPlayer.setTimeOut(500); //Set serial communictaion time out 500ms //----Set volume---- myDFPlayer.volume(10); //Set volume value (0~30). myDFPlayer.volumeUp(); //Volume Up myDFPlayer.volumeDown(); //Volume Down //----Set different EQ---- myDFPlayer.EQ(DFPLAYER_EQ_NORMAL); // myDFPlayer.EQ(DFPLAYER_EQ_POP); // myDFPlayer.EQ(DFPLAYER_EQ_ROCK); // myDFPlayer.EQ(DFPLAYER_EQ_JAZZ); // myDFPlayer.EQ(DFPLAYER_EQ_CLASSIC); // myDFPlayer.EQ(DFPLAYER_EQ_BASS); //----Set device we use SD as default---- // myDFPlayer.outputDevice(DFPLAYER_DEVICE_U_DISK); myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD); // myDFPlayer.outputDevice(DFPLAYER_DEVICE_AUX); // myDFPlayer.outputDevice(DFPLAYER_DEVICE_SLEEP); // myDFPlayer.outputDevice(DFPLAYER_DEVICE_FLASH); //----Mp3 control---- // myDFPlayer.sleep(); //sleep // myDFPlayer.reset(); //Reset the module // myDFPlayer.enableDAC(); //Enable On-chip DAC // myDFPlayer.disableDAC(); //Disable On-chip DAC // myDFPlayer.outputSetting(true, 15); //output setting, enable the output and set the gain to 15 //----Mp3 play---- myDFPlayer.next(); //Play next mp3 delay(1000); myDFPlayer.previous(); //Play previous mp3 delay(1000); myDFPlayer.play(1); //Play the first mp3 delay(1000); myDFPlayer.loop(1); //Loop the first mp3 delay(1000); myDFPlayer.pause(); //pause the mp3 delay(1000); myDFPlayer.start(); //start the mp3 from the pause delay(1000); myDFPlayer.playFolder(15, 4); //play specific mp3 in SD:/15/004.mp3; Folder Name(1~99); File Name(1~255) delay(1000); myDFPlayer.enableLoopAll(); //loop all mp3 files. delay(1000); myDFPlayer.disableLoopAll(); //stop loop all mp3 files. delay(1000); myDFPlayer.playMp3Folder(4); //play specific mp3 in SD:/MP3/0004.mp3; File Name(0~65535) delay(1000); myDFPlayer.advertise(3); //advertise specific mp3 in SD:/ADVERT/0003.mp3; File Name(0~65535) delay(1000); myDFPlayer.stopAdvertise(); //stop advertise delay(1000); myDFPlayer.playLargeFolder(2, 999); //play specific mp3 in SD:/02/004.mp3; Folder Name(1~10); File Name(1~1000) delay(1000); myDFPlayer.loopFolder(5); //loop all mp3 files in folder SD:/05. delay(1000); myDFPlayer.randomAll(); //Random play all the mp3. delay(1000); myDFPlayer.enableLoop(); //enable loop. delay(1000); myDFPlayer.disableLoop(); //disable loop. delay(1000); //----Read imformation---- Serial.println(myDFPlayer.readState()); //read mp3 state Serial.println(myDFPlayer.readVolume()); //read current volume Serial.println(myDFPlayer.readEQ()); //read EQ setting Serial.println(myDFPlayer.readFileCounts()); //read all file counts in SD card Serial.println(myDFPlayer.readCurrentFileNumber()); //read current play file number Serial.println(myDFPlayer.readFileCountsInFolder(3)); //read fill counts in folder SD:/03 } void loop() { static unsigned long timer = millis(); if (millis() - timer > 3000) { timer = millis(); myDFPlayer.next(); //Play next mp3 every 3 second. } if (myDFPlayer.available()) { printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Print the detail message from DFPlayer to handle different errors and states. } } void printDetail(uint8_t type, int value){ switch (type) { case TimeOut: Serial.println(F("Time Out!")); break; case WrongStack: Serial.println(F("Stack Wrong!")); break; case DFPlayerCardInserted: Serial.println(F("Card Inserted!")); break; case DFPlayerCardRemoved: Serial.println(F("Card Removed!")); break; case DFPlayerCardOnline: Serial.println(F("Card Online!")); break; case DFPlayerPlayFinished: Serial.print(F("Number:")); Serial.print(value); Serial.println(F(" Play Finished!")); break; case DFPlayerError: Serial.print(F("DFPlayerError:")); switch (value) { case Busy: Serial.println(F("Card not found")); break; case Sleeping: Serial.println(F("Sleeping")); break; case SerialWrongStack: Serial.println(F("Get Wrong Stack")); break; case CheckSumNotMatch: Serial.println(F("Check Sum Not Match")); break; case FileIndexOut: Serial.println(F("File Index Out of Bound")); break; case FileMismatch: Serial.println(F("Cannot Find File")); break; case Advertise: Serial.println(F("In Advertise")); break; default: break; } break; default: break; } }
Вон же там - randomAll() имеется.
спасибо, что подсказали но он не работает
"Random playback of the whole storage device. This command is used to randomly play sound files in the storage device according to physical sequence ..."
Должно работать.
Должно но почемуто не работает(( можете представить рабочий скетч
Представить я что угодно могу - и рабочий и нерабочий.
Я проверил только что - всё играет. А что вы имеете ввиду под словом "не работает" я угадывать не хочу.
Представить я что угодно могу - и рабочий и нерабочий.
Я проверил только что - всё играет. А что вы имеете ввиду под словом "не работает" я угадывать не хочу.
Предлагаю поступить наоборот - вы постите сюда пример, который у вас не работает, с минимальным набором строк. Мы смотрим и, может быть, советуем как быть далее.
Тот экзампл, что в первом сообщении, физически не может играть по три секунды. Может у вас вообще более ничего нет, м?
Может у вас вообще более ничего нет, м?
Приведенный выше пример сложен для меня (я пока не такой понимающий в этом деле) и к сожалению мою задачу в полном объеме не выполняет(((.
Мне нужен скетч с минимальным набором строк, который играет рандомно песни целиком, СПАСИБО!!!
Удалите или закоментируйте строки 104-107.
Приведенный выше пример сложен для меня (я пока не такой понимающий в этом деле) и к сожалению мою задачу в полном объеме не выполняет(((.
Мне нужен скетч с минимальным набором строк, который играет рандомно песни целиком, СПАСИБО!!!
1. Вы учитесь самостоятельно работать с Ардуиной. Возможно, для этого портебуется отложить на некоторое время упомянутый Вами проект и сначала собрать пару-тройку проектов попроще.
2. Заказать работу за деньги в разделе "Ищу исполнителя".
nurgazin_d@mai - не будьте так ленивы, прочитайте хотя бы комменты в том коде, который вы выложили...
nurgazin_d@mai - не будьте так ленивы, прочитайте хотя бы комменты в том коде, который вы выложили...
Какой смысл в этом высказывании??? Или вы думаете, что я вообще не в курсе как и че, я и дата шит, и библиотеки перелопатил, везде примерчик типа этого:
#include <SoftwareSerial.h>
или такой:
так что не говорите мне, что я ленюсь, это обидно слушать, когда ты почти год бьешься над этим проектом.
Я говорил, что у меня проблемы с этим модулем (судя по форуму даже у гуру программирования проблемы с этим модулем), о боги приведите сюда просвещенного, дабы он просветил меня.)))
Если вы такой умный решите на основании этих двух примеров выше поставленную задачу. СПАСИБО
ВСЕМ СПАСИБО!!! вроди сделал!!!
только теперь вопрос такой : почему после команды
и последний вопрос как воспроизвести определенную песню из папки т.е.
команды\0001.мр3
а песни\0001..0019
только не работает так?
не знаю команду воспроизводи рандомно из этой папки и просто воспроизведи эту песню из этой папки
Random из папки плеер не умеет делать. И воспроизводить он будет не #1, #3, #4, #2 а вполне себе может отчудить #1, #3, #1, #2, #4.
Полноценный random из папки, как мне кажется, средствами самого плеера не получить.
Random из папки плеер не умеет делать. И воспроизводить он будет не #1, #3, #4, #2 а вполне себе может отчудить #1, #3, #1, #2, #4.
Полноценный random из папки, как мне кажется, средствами самого плеера не получить.
Спасибо большое!!!
а как сделать так, чтобы например проиграл он допустим #1, #5, #19 и после нажатия на паузу продолжил играть дальше #2, #4, #68 и тд а то после команды mp3_pause (); или mp3_stop (); он опять начинает играть #1, #5, #19
nurgazin_d@mai - не будьте так ленивы, прочитайте хотя бы комменты в том коде, который вы выложили...
Какой смысл в этом высказывании??? Или вы думаете, что я вообще не в курсе как и че
Я ничего про вас не думаю - я всего лишь просил прочесть комменты в скетче. Если б вы это сделали - вы нашли бы три строчки, которые останавливают проигрывание песни после 3 секунд - и проблема была бы решена. Вместо этого вы предпочли ругаться и кидать в меня какими-то обрывками кодов.
а как сделать так, чтобы например проиграл он допустим #1, #5, #19 и после нажатия на паузу продолжил играть дальше #2, #4, #68 и тд а то после команды mp3_pause (); или mp3_stop (); он опять начинает играть #1, #5, #19
ну вы же все равно ардуиной управляете - так и случайное воспроизведение делайте не командами плеера, а ардуиной. Запросите список треков или хотя бы просто их число в каталоге - сформируйте случайный порядок номеров и заказывайте песни в этом порядке...
делов то...
делов то...
Не всё так просто и волшебно в этом плеере, конечно, но алгоритм, в целом такой.
а почему он при команде плей играет только одну песню и не продолжает дальше, как быть??
ну вы же все равно ардуиной управляете - так и случайное воспроизведение делайте не командами плеера, а ардуиной. Запросите список треков или хотя бы просто их число в каталоге - сформируйте случайный порядок номеров и заказывайте песни в этом порядке...
делов то...
[/quote]
блин а как получить список, рандом радуино это где че (((( примерчик есть плииииз
Как быть... читать комментарии в коде:
myDFPlayer.play(1);
//Play the first mp3
myDFPlayer.play(1); //воспроизведение первого mp3, ну как бы я читал
а как воспроизвести все песни???
я сейчас использую вот эту библиотеку #include <DFPlayer_Mini_Mp3.h>
а как воспроизвести все песни???
ну блин, вы спите что ли? или бухаете?
вот, к примеру - песни с первой по двадцатую
Там, под комментом
//----Mp3 play----
Приведены команды библиотеки. Вам лень их поочередно перепробовать?
b707, включится только 20-й трэк. Исправь совет ;)
Hint: плеер работает асинхронно с МК и все команды на плей пролетят за 19*10мс.
а "примерчики" готовые - я считаю давать вредно. Вот только в эти выходные имели на форуме опыт - после 80 сообщений совершенного тупизма и глупости некий ленивый новичок все-таки выпросил кусок готового кода.
И что вы-таки думаете? - остался недоволен, что его так долго мурыжили, не дали код сразу. Вместо благодарности обложил форум и ушел.
Hint: плеер работает асинхронно с МК и все команды на плей пролетят за 19*10мс.
о, круто :) это я пальцем в небо попал :)
А он хотя бы выставляет какой-то флаг, что окончил играть очередную пьессу? :)
sadman, а у DFPlayera ноги Busy нету? Чота мне такое помница...
(смотреть неудобно, я с тапка)
Hint: плеер работает асинхронно с МК и все команды на плей пролетят за 19*10мс.
о, круто :) это я пальцем в небо попал :)
А он хотя бы выставляет какой-то флаг, что окончил играть очередную пьессу? :)
Статус можно кверить или за бази пин щупать. Но с последним тоже весело.
sadman, а у DFPlayera ноги Busy нету? Чота мне такое помница...
(смотреть неудобно, я с тапка)
Есть. Поэтому я цитировать сообщение не стал - вдруг b707 исправить захочет совет на правильный.
Ребята вы молодци все спасибо буду пробывать за ногу busy
а у DFPlayera ноги Busy нету?
Есть, но там творится веселуха - не всегда срабатывает, насколько я заметил: было такое, что ещё играет, а BUSY сообщает, что свободен, типа. Кмк, лучше запрашивать статус.
Есть. Поэтому я цитировать сообщение не стал - вдруг b707 исправить захочет совет на правильный.
не, второй раз выступать не буду. Похоже, этот плеер надо сначала в руках подержать.
глупость моя пусть останется - некрасиво это, затирать ошибки, когда их уже кто-то заметил и тебе указал. Архатом попахивает :)
а у DFPlayera ноги Busy нету?
Есть, но там творится веселуха - не всегда срабатывает, насколько я заметил: было такое, что ещё играет, а BUSY сообщает, что свободен, типа. Кмк, лучше запрашивать статус.
А я где-то читал, што этот плэер ничо по сериалу не отдает, только принимает командные последовательности, или это было не про него?
Не работал с ним, могу ашыбацца
А я где-то читал, што этот плэер ничо по сериалу не отдает, только принимает командные последовательности, или это было не про него?
Просишь в пакете байтиком - отдает, не просишь - не отдает. В последнем случае просто 10мс надо подождать между командами.
Ты токо это... НовыйГод досрочно не встреть, а то опять от коллектива отобъешься.
Уважаемые, подскажите, а можно как-то этот модуль заставить сразу воспроизводить файл автоматически при подаче питания?
эта команда проигрывает трек1 полностью и потом останавливается?
эта команда проигрывает трек1 полностью и потом останавливается?
ответ в сообщении #25
А как заставить стабильно страбатывать по BUSY? Бывает треков 10-20 нормально играет, потом затык на одном пока кнопкой на следующий не переключиш, и повторно затык через надцать треков.
Помогите разобраться.
Сделал робота на 4 приводах с ультразвуковым датчиком, всё работает чётенько, но я прикрутил ещё DFPlayerMini что бы он комментировал свои действия. Вопрос в том что не могу вставить строки в свой скетч чтобы при повороте направо он проговорил:
Всем огромный привет.Решил я тоже зимой от нечего делать собрать конструкцию на ардуино и купленным DFPiaer mini MP3 .Как описывалось выше в постах я сразу впаял в цепь UART резисторы по 1 кОм,по ссылке:https://portal-pk.ru/news/247-delaem-mp3-pleer-na-dfplayer-mini-i-arduino.html, подключил библиотеку :"DFRobotDFPlayerMini.h".Вроде как бы меня устраивало всё до того момента,пока не столкнулся с проблемой-ничего то я прочитать не могу из плеера,а хотелось бы увидеть уровень громкости,состояние плеера,номер проигрываемого трека и многое другое.На экранчик ничего не выводится,т.е. выводится как на мониторе компа-
-1
0
Гробовая тишина,неужели никто не знает???
Опишите переменные в сериал:
Какое значение к чему привязано. Попробуйте команду "тустринг". Может команды возвращают код ошибки. Вариантов много.
А зачем их описывать,если эти методы есть в библиотеке,я их просто в скетче вызываю?
Тогда какая переменная выдаёт пустую строку? Какая переменная выдаёт ноль? Какая переменная выдаёт минус 1?
Ни одно из значений запрашиваемых из модуля(плеера имеется ввиду) не выводится,т.е. выводится "0".К примеру я запрашиваю текущее состояние громкости:myDFPlayer.readVolume(); пакет запроса выглядит таким образом:
7E FF 06 43 01 00 00 FE B7 EF
пакет ответа выглядит так:
На форумах нигде не упоминается об этом,видимо вс е довольны тем что заслал команду и работает и ладно,но мне хотелось вывести эту инфу на экран,но там нет "никого".
Почему? Вот тут http://arduino.ru/forum/proekty/nalivator-avtomatizirovannaya-mashina-ko... мучаемся с этими левыми плеерами
Спасибо,счас почитаю что пишут знающие люди.