Какой выбрать MP3 модуль

Тема в разделе "Arduino & Shields", создана пользователем Danik, 4 июл 2018.

  1. Danik

    Danik Нуб

    Здравствуйте друзья!
    Задача: с дисплея Nextion отправляется команда на ардуина (команда на включения релюшек и мр3 модуля), нужно выбрать мр3 модуль. Он должен при получении команды от ардуино начать воспроизводить песни в случайном порядке.
    Пробовал на MP3 Shield от компании ELECHOUSE версии 1.3
    [​IMG]
    [​IMG]
    и на dfplayer но не смог разобраться как проигрывать песни в случайном порядке((
    посоветуйте мр3 модуль для этой задачи или подскажите как проиграть рандомно песни на них.
    ВСЕМ спасибо! просьба не писать купи мр3 плеер или на даташите посмотри, не смог я там понять че и как поэтому и обращаюсь к вам.
     

    Вложения:

    • 1_324.jpg
      1_324.jpg
      Размер файла:
      160,9 КБ
      Просмотров:
      572
    • Miniplayer_pin_map.png
      Miniplayer_pin_map.png
      Размер файла:
      43,6 КБ
      Просмотров:
      339
  2. b707

    b707 Гуру

    Danik. если в плеере нет отдельной команды "проигрывать треки в случайном порядке" - тогда можно переложить выбор случайного трека на ардуино. Я посмотрел описание - в плеере можно заказать играть конкретный МП3 файл по номеру. Просто задавайте случайный номер и все.

    PS вы уже второй раз пишете, что советы "почитай примеры и даташит" вам не подходят. Сорри, но если вы не умеете читать описания - ардуина не для вас. Не умеете - учитесь. Подтяните английский, если проблема в этом. Переводить и рассказывать даташиты вам на ночь никто не будет.
     
    parovoZZ, arkadyf, Mitrandir и ещё 1-му нравится это.
  3. parovoZZ

    parovoZZ Гуру

    это будет следующий вопрос от телезрителей.
     
  4. однако этим и отличается дитё от ардуиньщика. Одному сказки на ночь рассказывают. Другому даташиты))). Вопрос а что будет если младенцу вместо сказок даташиты читать? ( Наверное программистом вырастит)
     
  5. ostrov

    ostrov Гуру

    В dfmini есть встроенная возможность случайного проигрывания треков.
     
  6. Danik

    Danik Нуб

    Доля правды в этом есть не спорю, отступать от своих желаний не буду (хочу научится программировать микроконтроллеры), учить английский надо - согласен. Задачку решить нужно срочно(, программирую ардуино без малого месяца 2) а так пушу на паскале, так как с++ не изучал синтаксис языка мне не привычен от того и долго разбираюсь с ардуино вот че я пишу:

    Код (C++):
    #define RELAY8 8          // диспригатор        220v
    #define RELAY9 9          // ВЫХОД и вытяжка    12v и 220v
    #define RELAY10 10        // Конвекционные вентиляторы 12v
    #define RELAY11 11        // КВАРЦ     220v
    #define RELAY12 12        // ИОНИЗАТОР 220v
    #include <SoftwareSerial.h>
    #include <Nextion.h>
    #include <DFPlayer_Mini_Mp3.h>
    SoftwareSerial nextion(2, 3);// Nextion TX to pin 2 and RX to pin 3 of Arduino
    Nextion myNextion(nextion, 9600);

    int interval = 25;      // время работы таймера реле 8, 10, 12, мин
    int interval2 = 15;      // время работы таймера реле 11, мин
    unsigned long timer =0; // переменная для работы таймера
    unsigned long timer2 =0; // переменная для работы таймера
    bool timerenabled = 0;  // флаг включен таймер или нет
    bool timerenabled2 = 0;  // флаг включен таймер или нет

    int min_timer = 0;      // минуты таймера  
    int min_timer2 = 0;      // минуты таймера  
    int sec_timer = 0;      // секунды таймера
    int sec_timer2 = 0;      // секунды таймера
     
    int prevsec_timer = 0;  // последнее значение секунд
    int prevsec_timer2 = 0;  // последнее значение секунд
    void setup()
    {
    Serial.begin(9600);

      mp3_set_serial (Serial);    //set Serial for DFPlayer-mini mp3 module
      delay (100);
      mp3_set_volume (25);
      delay (100);

    pinMode     (RELAY8, OUTPUT);
    digitalWrite(RELAY8, LOW  );
    pinMode     (RELAY9, OUTPUT);
    digitalWrite(RELAY9, LOW  );
    pinMode     (RELAY10, OUTPUT);
    digitalWrite(RELAY10, LOW  );
    pinMode     (RELAY11, OUTPUT);
    digitalWrite(RELAY11, LOW  );
    pinMode     (RELAY12, OUTPUT);
    digitalWrite(RELAY12, LOW  );
      myNextion.init();
    }
    void loop() {
    /////////////////////////////////////////////////////////////КНОПКА START//////////////////////////////////////////////////////////////
      String message = myNextion.listen(); //check for message
       if(message == "65 0 3 1 ffff ffff ffff")
    {
        timer = millis();            // как бы сбрасываем таймер на ноль
        timerenabled = 1;            // включаем таймер
        digitalWrite(RELAY9, 0);  //выключаем реле
        digitalWrite(RELAY11, 0);  //выключаем реле
        digitalWrite(RELAY8, 1);      // ну и включаем реле
        digitalWrite(RELAY10, 1);      // ну и включаем реле
        digitalWrite(RELAY12, 1);      // ну и включаем реле
        mp3_play (); // запускаем трек
        delay (100);
        mp3_random_play ();  // Даем команду проигрывать треки в случайной последовательности

    }
    if (timerenabled && millis()-timer> (unsigned long) interval*60000UL)  //если таймер был включен и он кончился
    {  timerenabled = 0 ;       // выключаем таймер
      digitalWrite(RELAY8, 0);  //выключаем реле
      digitalWrite(RELAY10, 0);  //выключаем реле
      digitalWrite(RELAY11, 0);  //выключаем реле
      digitalWrite(RELAY12, 0);  //выключаем реле
      digitalWrite(RELAY9, 1);  //включаем реле
      mp3_stop ();
      delay (100);
    }
    с дисплея Nextion отправляется команда на ардуина (команда на включения релюшек и мр3 модуля)
    но этот модуль жук такой) не проигрывает рандомно песни, где косяк подскажите) пожалуйста.
    ПРОШУ не надо воды лить) подскажите на конкретно. СПАСИБО!!!!!!!!!!!!!!!!!!!!!!!!
     
  7. b707

    b707 Гуру

    DFPlayer_Mini_Mp3.h - эта библиотека, судя по названию - не подходит к этому плееру
     
  8. Danik

    Danik Нуб

    Выше приведен пример с использованием DFPlayer[​IMG]
    делал по примеру, если библиотека не та можете подсказать почему и какая будет та.
     
  9. DetSimen

    DetSimen Guest

    синим проводам (RX, TX) в разрыв резисторы нужны последовательно, по килоому, иначе хрипеть/свистеть будет, проверено
     
  10. Danik

    Danik Нуб

    Это я знаю с интернета картинку нашел а так все есть
     
  11. Danik

    Danik Нуб

    Мысль хорошая!, понять бы еще как ее реализовать) например я не знаю как задавать рандом на ардуино(
     
  12. Mitrandir

    Mitrandir Гуру

    random(min,max)
     
  13. Mitrandir

    Mitrandir Гуру

  14. parovoZZ

    parovoZZ Гуру

    включаешь АЦП и снимаешь показания с не подключенного аналогового входа. Там рандом. так рандом )))
     
    Mitrandir нравится это.