а есть смысл заморачиваться с ним? даст он мне чистый звук без шипений? хочу через него выводить звук на gprs shield - модуль SD карты даёт сильное шипение. или нужно внимание обратить на Arduino Mp3 shield vs1053
У VS1053 уровень шумов менее -90Дб, музыка на нем достаточно приличного качества. Но если вы гоните звук в GSM сеть, то там такая узкая полоса, что скорее всего абонент не отличит звук VS1053 от DFPlayer, так что я бы ставил то, что дешевле и проще в работе.
выручайте, ну не запустить мне его. выдаёт ~я~я~я~я это если без библиотеки либо карта не найдёна. даже не понятно рабочий он или нет. в каких то описаниях пишут о светодиоде . но у меня ничего не горит.
ОООЧень толковая ссылка https://lesson.iarduino.ru/page/urok-17-podklyuchenie-mini-mp3-pleera-k-arduino/ И еще одна http://rc-master.ucoz.ru/publ/10-1-0-129
проштудировал обе ссылки... максимум что получилось это появилось шипение в наушниках. (как буто кассета закончилась и щёлканье ) по первой ссылке в сереал выводится не понятные иероглифы. попробовав такой код ответ получаю Please recheck the connection! Please insert the SD card! один раз получилось проскочить до DFPlayer Mini online. но музыки я не услышал Код (C++): #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.volume(10); //Set volume value. From 0 to 30 myDFPlayer.play(1); //Play the first mp3 } 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; } }
на карте создана папка mp3 , в ней лежат *wav и *mp3 файлы названием 0001 - 0002 и т.д. теже самые файлы лежат в корне карты. карта от форматирована v Fat32. Нет не играет. только появилось шипение в наушниках.(в одном) карта 2gb, только не помню какого по каления
попробуйте для начала громкость поставить хотя бы 20-25...и можно для начала включить небольшой динамик на силовой выход.
Уберите все, кроме сетапа. Даже луп оставьте полностью пустым. Если все правильно подключено - заиграет первый трек. Пока этого не будет - никаких проверок на состояние, никаких переключений трека, вообще ничего не надо дописывать. Подключите параллельно с плеером юсб-ком преобразователь и посмотрите через нормальный (не ардуиновский) терминал что там шлется на плеер (достаточно хорош Termite, там надо включить HEX view). И сравните с документацией правильные ли коды вы шлете.
.DFRobot D с первым кодом удали все проверки шлёт. 46 50 6c 61 79 65 72 20 4d 69 6e 69 20 44 65 6d FPlayer Mini Dem 6f 0d 0a 49 6e 69 74 69 61 6c 69 7a 69 6e 00 00 o..Initializin.. 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d 0a ................ 44 46 52 6f 62 6f 74 20 44 46 50 6c 61 79 65 72 если загрузить вот такой код: Код (C++): #include <SoftwareSerial.h> #include <DFPlayer_Mini_Mp3.h> void setup () { Serial.begin (9600); mp3_set_serial (Serial); //set Serial for DFPlayer-mini mp3 module delay (100); mp3_set_volume (20); } void loop () { delay (100); mp3_play (2); // Проигрываем "mp3/0002.mp3" delay (10000); } то выдаёт, если я правильно понимаю играет 2ой трек. 7e ff 06 12 00 00 02 fe e7 ef ~я.....юзп 7e ff 06 12 00 00 02 fe e7 ef ~я.....юзп 7e ff 06 12 00 00 02 fe e7 ef ~я.....юзп 7e ff 06 12 00 00 02 fe e7 ef ~я.....юзп
Вы путаете хардварный и софтварный сериал. В вашем коде плеер висит на софтварном (10,11) а слушаете вывод на хардварном, куда идет отладочная информация.