• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Библиотека для DFPlayer Mini

enjoynering

Well-known member
Из того что есть на GitHub ничего не понравилось, но появились вопросы. Так и не понял зачем, для ожидания ответа, люди городят огород с millis(), delay() или дополнительными библиотеками. Все уже давно есть в Arduino - Serial.setTimeout() и Serial.readBytes(). Второй вопрос у меня к китайским товарищам. Зачем они ставят перемычку не туда? Из-за этого во время инициализации чипа из динамика валит шум и треск. У усилителя DM8002 есть standby режим, а у DFPlayer Mini есть пин busy. Нужно просто перепаять резистор/перемычку справа (STBY->GND) налево (STBY-BUSY).

DFPlayer_Mini_Modification.jpg

В datasheet куча непоняток и неточностей. Например я так не понял как уводить модуль в loop all, loop folder, random. Мой умеет только loop track. Пытался найти перебором - модуль отвечает ошибкой на все команды, выше 0x1A. Перепутаны местами количество треков на USB и SD card и тд. Sleep не отключаем и работает всегда - после проигрывания модуль снижает потребление до 20-25мА в не зависимости от команды.

Многие пишут что у модуля нет mute. Это не правда. Для этого есть команда 0x1A, я ее обернул в enableDAC(bool enable). Остальные забыли школьную программу и не знают как найти количество треков в папке "mp3". Всего-то надо отнять количество треков в каждой папке из количества всех треков на карте. Вот как я делаю это в MatrixClock:

Код:
tracks = mp3.getTotalTracksSD() - mp3.getTotalTracksFolder(1) - mp3.getTotalTracksFolder(2);
У модуля адские требования к названию файлов. Если файлы находятся в корне, то они должны содержать 4-е цифры с ведущими нулями. Например: SD_ROOT/0001 - My favorite song.mp3. DFPlayer Mini сортирует root по времени записи на флешку. Не копируйте 0003.mp3, а затем 0001.mp3, тк сначала будет воспроизведен 0003.mp3.

Желательно распихать файлы по папкам. Папки должны содержать 2-e цифры с ведущими нулями. Количество папок 01..99. Файлы внутри должны содержать 3-и цифры с ведущими нулями. Количество файлов в каждой папке 001..255. Например: SD_ROOT/01/001 - My favorite song.mp3. В отличии от корня, файлы из папок можно читать по номеру файла, а не по времени записи на флешку.

Есть еще - папка "mp3" и "advert". Файлы внутри должны содержать 4-е цифры с ведущими нулями, количество файлов 0001..9999 и можно читать по номеру файла. Например: SD_ROOT/mp3/0001 - My favorite song.mp3. Файлы из "advert" проигрываются только если уже играет трек. Тогда модуль ставит текущий на паузу, проигрывает файл из "advert" и снимает паузу с основного.

Забирать библиотеку тут.
 
Сверху Снизу