Вопрос по MP3 модулю

Тема в разделе "Флудилка", создана пользователем CYITEP_BAC9I, 27 окт 2017.

  1. CYITEP_BAC9I

    CYITEP_BAC9I Гик

    День добрый(если он добрый). Проконсультируйте пожалуйста кто работал с этим модулем http://amperka.ru/product/df-player-mp3-module . Даташит читал, но остались нюансы. Хочу его выход подключить параллельно выходу FMмодуля.

    1 можно ли питать его с ноги Ардуино? Что бы он не вносил ненужных помех планирую его включать только когда он будет нужен. В даташите написано 15 ма, люди пишут что 25-35ма, вроде укладывается в запас прочности Дуни?

    Инициализироваться и настраиваться будет не в setup а в цикле каждый раз как к нему обратятся. Возможно неудобно но зато можно держать выключенным и включать по необходимости.

    2 если вставить карточку с мп3 музыкой проигрывать не будет если не пронумеровать 0000 0001?

    (полноценный мп3 модуль сейчас в пути, поэтому хочу потренироваться на этом)

    3 есть ли команда выводящая номер проигрываемого трека? И вообще можно ли организовать индикацию какой трек выбран, чтоб было можно перелистывая переходить к нужному треку?

    Вроде пока все)
     
  2. CYITEP_BAC9I

    CYITEP_BAC9I Гик

    на последний вопрос сам уже нашел ответ про нумерацию проигрываемого файла
    Serial.println(myDFPlayer.readCurrentFileNumber());
    осталось разобраться что за зверь
    myDFPlayer.enableLoop(); //enable loop. //эта команда закольцовывает трек или всю группу треков то есть они проигрываются по порядку 12345, потом снова 12345?
    и
    myDFPlayer.enableLoopAll(); //loop all mp3 files. //если правильно понял это закольцовывает все файлы?
     
  3. CYITEP_BAC9I

    CYITEP_BAC9I Гик

    кстати заодно. Оригинальный скетч от модуля.
    зачем функции объявлены в SETUP да еще и с Delay(1000)?
    Код (C++):
    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
    }
    я как то привык функции обявлять после основного цикла. для общего развития хочется понять такой оборот написания.
     
  4. Airbus

    Airbus Радиохулиган Модератор

    Он же сам работает без Ардуино ?Вроде бы ostrov про него где то писал говорил что не очень.
     
    CYITEP_BAC9I нравится это.
  5. Tomasina

    Tomasina Сушитель лампочек Модератор

    По нему есть отдельная тема, зачем создавать ещё одну?
    В setup не объявление функций, а их запуск, для предварительной настройки модуля. Объявлены они в файлах библиотеки.
     
    Arduiner001 и CYITEP_BAC9I нравится это.
  6. CYITEP_BAC9I

    CYITEP_BAC9I Гик

    Сорри видно плохо искал( дайте сысылку если можно. про функции спасибо понял, такой оброт впервые увидел поэтому и интересно стал
    Да я читал что не очень + многие на треск жаловались. Но он у меня есть в наличии и хочу потренироваться. Кст может посоветуете хороший модуль чтоб и С USB флешек читались треки и с карточек.
    пока заказал но хотелось что то ардуиноподобное чтоб можно было к мониторчкику приколхозить, что бы читать назавания треков и всякие меню. Удачного всем дня!(кстати)
     
  7. ostrov

    ostrov Гуру

    Чтобы не трещал, обязательно ставьте резистор на ногу RX! 10 КОм.
     
    Arduiner001, sys, DIYMan и ещё 1-му нравится это.
  8. ostrov

    ostrov Гуру

    TX плеера можно вообще не соединять, по моему там нет обратной связи. Конец трека отслеживается по BUSY.
     
    CYITEP_BAC9I нравится это.
  9. CYITEP_BAC9I

    CYITEP_BAC9I Гик

    спасибо. раз разговор про "подтяжки" пошел. то можете ли подсказать как и куда подтягивать . к пинам А5 А6 ардуино про мини через конвертор уровней 5-3.3 вольта подключен FM модуль. и как в такой ситуации подтягивать линию? рдныз 3 вольта у про мини нет. можно ли так сделать как я нарисовал? или вообще не недо? модуль хорошо работает ничего не скрипит не шумит.
    [​IMG]
    вот все равно не въезжаю зачем так делать(((. глянул эти функции в библиотеке. Вот ничего не изменится ИМХО. если я их вставлю в само тело программы в любом месте. ( я имею ввиду те что через delay()/ да и в любом случае секунда задержки это жирно по моему. вопрос имеет чисто образовательный характер. для дальнейшего совершенствования). в выходные если выдастся свободная минутка постараюсь собрать в железе и проверить. меня еще в этой библиотеке интересует. вот нафиг нужны комнады проиграть ( следующий предидущий трек) и собственно комнады плей /пауза. придется самому на практике все вкуривать
     
  10. ostrov

    ostrov Гуру

    Я библиотекой не пользуюсь ввиду ее кривизны. Сделал все по своему.
     
  11. Airbus

    Airbus Радиохулиган Модератор

    какая там может быть библиотека?
     
  12. ostrov

    ostrov Гуру

    Ну протокол команд определенный обеспечить надо. В любом случае не совсем уж просто.
     
  13. ostrov

    ostrov Гуру

    Что до согласования уровней, то есть специальные платы стоимостью копейки, которые переводят из любого в любой во все стороны. Считаю надо их юзать и не париться.
     
    CYITEP_BAC9I нравится это.
  14. Tomasina

    Tomasina Сушитель лампочек Модератор

    Ну это же демо-пример, где "в натуре" расписаны реальные примеры использования, ведь нынче документацию мало кто читает :D Поэтому и напихано по максимуму.
    Код (C++):
    myDFPlayer.volume(10);  // Установить громкость в 10 (после включения она по умолчанию то ли 25, то ли 30)
      myDFPlayer.volumeUp(); // Пример изменения громкости на +1
      myDFPlayer.volumeDown(); //Пример изменения громкости на -1
    //  myDFPlayer.sleep();     //не знаю что, возможно режим энергосбережения для батарейного использования.
    //  myDFPlayer.reset();     //Сбросить все настройки на исходные
      myDFPlayer.play(1);  //Начать воспроизведение первого трека (файл 0001.mp3)
      delay(1000); // пауза для того чтобы услышать результат
      myDFPlayer.next();  //Начать воспроизведение следующего трека
      delay(1000); // <<<<< вот этот момент зачем?????? // Для того, чтобы ты услышал сам трек, иначе следующая команда мгновенно его перебьет
      myDFPlayer.previous();  //Начать воспроизведение предыдущего трека
      delay(1000);
      myDFPlayer.loop(1);  //Повторять первый трек по его окончании
      delay(1000);
      myDFPlayer.pause();  //пауза
      delay(1000);
      myDFPlayer.start();  //Продолжить воспроизведение с места паузы
      delay(1000);
    А в setup() впихнули просто для того чтобы это все проигралось только один раз. Те же команды можно с тем же результатом использовать и в loop() в нужных местах.
     
    sys и CYITEP_BAC9I нравится это.
  15. CYITEP_BAC9I

    CYITEP_BAC9I Гик

    спасибо!!!
    вот это меня и сбило с толку. думал что это какой-то новый стиль написания). спасибо! могли бы и закомментировать чтоб люди головы не ломали. очень хочу выкроить на выходных хоть немного времени на свои забавы на практике все проверить.
    Спаибо, у меня ФМ модуль так и подключен через конвертер уровней, люди пишут что у них шипит, наводки . А у меня нет, вот и думал, что я неправильно сделал. Всем удачных выходных(если они выходные)
     
  16. DIYMan

    DIYMan Guest

    Только не 10К, а 1К, так в даташите на модуль написано ;) Ставлю 1К - не трещит. Думаю, что и с 10К не будет :)
     
    CYITEP_BAC9I нравится это.
  17. CYITEP_BAC9I

    CYITEP_BAC9I Гик

    спасибо у меня такой же треск стоял когда я из gsm модуля телефон делал. на всякий случай так же пустил Tx -Rx через 1 ком и чтоб наверняка было подтянул 10 ком оба. треск пропал)
     
  18. MSW

    MSW Нуб

    добрый вечер.
    подскажите, пожалуйста, как избавится от задержки при циклическом воспроизведении? хочу добавить в детскую игрушку озвучку работы двигателя, сделал отрезок звука длиной 4 секунды, а когда даю команду зациклить его, то после окончания звука и перехода к его началу есть небольшая задержка, что портит картину и не создаёт эффекта беспрерывной работы
    сделать кусок 10-60 минут не вариант, потому что от игрушка управляется по радио, и озвучиваются звуки включения двигателя, холостого хода, езды и выключения двигателя. вот между ними даже при переключении режимов возникает тоже задержка
     
  19. DIYMan

    DIYMan Guest

    На мой взгляд - никак, сам в своё время с этим столкнулся. Сам модуль пока прочухается - имхо, отсюда и задержка, что вы хотели за пару баксов? ;) Выход: либо забить, либо - одно из двух. Всё имхо, конечно.
     
    MSW нравится это.
  20. MSW

    MSW Нуб

    не знаете, другие модули( JQ6500, WT588D ) так же с задержками работают?
    если да, то придётся делать на тини2313, на подобии - http://www.parkflyer.ru/ru/blogs/view_entry/9979/