MP3-плеер (Trema-модуль v2.0)

Исходники изображение:
Библиотеки:

Общие сведения:

Trema-модуль MP3-плеер — MP3-проигрыватель, управляемый кнопками или при помощи Arduino, который вы можете использовать в широком диапазоне задач.

Видео:

Спецификация:

  • Поддержка форматов: MP3,WMV;
  • 24-разрядный ЦАП
  • Поддерживаемые карты памяти: SD-карты (FAT16/FAT32);
  • Объём карты памяти: SD до 2Gb / SDHC до 32Gb;
  • Питание: 3.3 - 5В;
  • Наличие режима "Рекламная пауза", "Непрерывное воспроизведение", "Случайное порядок";
  • Глубина архива: до 100 папок, каждая папка может содержать до 255 песен;
  • 30 уровней громкости;
  • 6 уровней EQ (Эквалайзера);
  • Все модули линейки "Trema" выполнены в одном формате

Подключение:

Для удобства подключения к Arduino воспользуйтесь Trema ShieldTrema Power ShieldMotor Shield или Trema Set Shield.

Выводы MP3-плеераВыводы Arduino
RXTX
TXRX
PЛюбой вывод
GGND
V5V

Модуль удобно подключать 3 способами, в зависимости от ситуации:

Способ - 1 :  Используя проводной шлейф и Piranha UNO

Используя провода «Папа — Мама», подключаем  напрямую к контроллеру Piranha UNO

Способ - 2 :  Используя Trema Set Shield

Модуль можно подключить к любому из входов Trema Set Shield ( при использовании программного последовательного порта )

Способ - 3 :  Используя проводной шлейф и Shield

Используя 5-и проводной шлейф, к  Trema ShieldTrema-Power ShieldMotor ShieldTrema Shield NANO и тд.

Питание:

Данный модуль питается от источника постоянного напряжения 3.3В или 5В.

Подробнее о модуле:

Модуль имеет удобный 3,5мм аудио-выход, разъём для подключения карты памяти и клавиатуры, удобную колодку для подключения к Arduino, а так же светодиод, который информирует о состоянии плеера в текущий момент - находится он в режиме ожидания или воспроизведения. При проигрывании файлов светодиод горит ярким светом, в режиме ожидания и с установленной картой памяти светодиод слегка светится.

Модуль прекрасно воспроизводит самые популярные форматы (MP3, WMV) и имеет целый ряд программных возможностей: 6 предустановленных настроек эквалайзера, режим зацикливания и случайного воспроизведения, регулировку громкости, номера и папки с воспроизводимыми треками.

На модуле имеется вывод "P", который соединён параллельно светодиоду состояния, благодаря чему можно считывать с этого вывода логический уровень сигнала и использовать его в дальнейших сценариях.

Для работы с модулем мы рекомендуем использовать библиотеку DFPlayerMini, которую вы можете скачать с нашего сайта.

Структура папок.

Данный модуль имеет ряд особенностей, связанных с построением каталога воспроизводимых файлов и папок. Об этом мы сейчас и поговорим.

Плеер поддерживает 3 типа внутренней структуры папок:

  • Папки, пронумерованные от 01 до 99 - стандартное воспроизведение треков:
    • Папки, пронумерованные от 01 до 99 могут включать в себя не более 255 файлов каждая;
    • Папки, пронумерованные от 01 до 10 могут включать в себя не более 1000 файлов каждая;
  • Папка MP3 - стандартное воспроизведение треков:
    • Может включать в себя 65535 файлов, пронумерованных от 001 до 65535;
  • Папка ADVERT - рекламное воспроизведение треков:
    • Может включать в себя 65535 файлов, пронумерованных от 001 до 65535;

Работа с файлами.

Работа с файлами предполагает, что все они были переименованы согласно тому диапазону, который был задан типом структуры папок. Плеер не работает с именами файлов, содержащих буквы.

Воспроизведение.

Данный плеер при стандартных настройках устанавливает однократное воспроизведение файлов. В этом случае вы можете определить окончание трека либо с помощью встроенной функции readState(), либо по уровню сигнала на выводе P, который подключен параллельно светодиодной индикации плеера и имеет на выходе тот же логический уровень, что и светодиод:

  • горит - плеер находится в режиме воспроизведения;
  • не горит - плеер находится в режиме паузы или прекращения проигрывания;

Данным выводом удобно пользоваться, если вы хотите отслеживать состояние переключения трека, которое происходит слишком быстро, чтобы всегда успеть определить это в коде программы. Используя прерывания и логический уровень вывода P вы сможете избежать этой проблемы.

Примеры:

Поочерёдное использование основных функций библиотеки.

#include <SoftwareSerial.h>                                                               // Подключаем библиотеку для работы с последовательным интерфейсом
#include <DFRobotDFPlayerMini.h>                                                          // Подключаем библиотеку для работы с плеером

SoftwareSerial mySoftwareSerial(10, 11);                                                  // создаём объект mySoftwareSerial и указываем выводы, к которым подлючен плеер (RX, TX)
DFRobotDFPlayerMini myDFPlayer;                                                           // создаём объект myDFPlayer для работы с плеером

void printDetail(uint8_t type, int value);                                                // создаём функцию для опроса плеера на наличие ошибок в его работе

uint32_t timer = millis();                                                                // создаём счётчик для выполнения функций по времени

void setup() {
  mySoftwareSerial.begin(9600);                                                           // инициализируем работу с программным последовательным портом и указываем скорость работы 9600 бод
  Serial.begin(115200);                                                                   // инициализируем работу с аппаратным последовательным портом и указываем скорость работы 115200 бод
  Serial.println();                                                                       // Выводим в монитор порта пустую строку
  Serial.println(F("DFRobot DFPlayer Mini Demo"));                                        // Выводим текст в монитор последовательного порта
  Serial.println(F("Initializing DFPlayer..."));                                          // Выводим текст в монитор последовательного порта
  if (!myDFPlayer.begin(mySoftwareSerial)) {                                              // Проверяем, есть ли связь с плеером и, если нет, то
    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);                                                             // Указываем время отклика плеера на команды в 500мс

  // НАСТРОЙКИ ЗВУКА
  myDFPlayer.volume(10);                                                                  // Устанавливаем громкость равной 10 (от 0 до 30)
  myDFPlayer.volumeUp();                                                                  // Увеличить громкость на 1
  myDFPlayer.volumeDown();                                                                // Уменьшить громкость на 1
  
  // НАСТРОЙКИ ЭКВАЛАЙЗЕРА
  myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);                                                      // Устанавливаем эквалайзер в положение NORMAL
  //  myDFPlayer.EQ(DFPLAYER_EQ_POP);                                                     // Устанавливаем эквалайзер в положение POP
  //  myDFPlayer.EQ(DFPLAYER_EQ_ROCK);                                                    // Устанавливаем эквалайзер в положение ROCK
  //  myDFPlayer.EQ(DFPLAYER_EQ_JAZZ);                                                    // Устанавливаем эквалайзер в положение JAZZ
  //  myDFPlayer.EQ(DFPLAYER_EQ_CLASSIC);                                                 // Устанавливаем эквалайзер в положение CLASSIC
  //  myDFPlayer.EQ(DFPLAYER_EQ_BASS);                                                    // Устанавливаем эквалайзер в положение BASS
  
  // НАСТРОЙКИ ИСТОЧНИКА ФАЙЛОВ
  //  myDFPlayer.outputDevice(DFPLAYER_DEVICE_U_DISK);                                    // Устанавливаем источником USB-ДИСК
  myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);                                            // Устанавливаем источником SD-карту
  //  myDFPlayer.outputDevice(DFPLAYER_DEVICE_AUX);                                       // Устанавливаем источником AUX
  //  myDFPlayer.outputDevice(DFPLAYER_DEVICE_SLEEP);                                     // Устанавливаем режим сна
  //  myDFPlayer.outputDevice(DFPLAYER_DEVICE_FLASH);                                     // Устанавливаем источником FLASH-карту
  
  // НАСТРОЙКИ РАБОТЫ ПЛЕЕРА
  //  myDFPlayer.sleep();                                                                 // Установить режим СНА
  //  myDFPlayer.reset();                                                                 // Сбросить все настройки
  //  myDFPlayer.enableDAC();                                                             // Включить ЦАП на чипе
  //  myDFPlayer.disableDAC();                                                            // Выключить ЦАП на чипе
  //  myDFPlayer.outputSetting(true, 15);                                                 // Настройки усилителя - включить и выставить коэффициент усиления
  
  // НАСТРОЙКИ ВОСПРОИЗВЕДЕНИЯ
  myDFPlayer.next();                                                                      // Включить воспроизведение следующего трека
  delay(3000);                                                                            // Задержка в 3 секунды
  myDFPlayer.previous();                                                                  // Включить воспроизведение предыдущего трека
  delay(3000);                                                                            // Задержка в 3 секунды
  myDFPlayer.play(1);                                                                     // Включить воспроизведение указанного (1) трека
  delay(3000);                                                                            // Задержка в 3 секунды
  myDFPlayer.loop(1);                                                                     // Включить неперывное воспроизведение указанного (1) трека
  delay(3000);                                                                            // Задержка в 3 секунды
  myDFPlayer.pause();                                                                     // Поставить воспроизведение на паузу
  delay(3000);                                                                            // Задержка в 3 секунды
  myDFPlayer.start();                                                                     // Продолжить воспроизведение трека (после паузы)
  delay(3000);                                                                            // Задержка в 3 секунды
  myDFPlayer.playFolder(15, 4);                                                           // Включить воспроизведение указанного трека из указанной папки: SD:/15/004.mp3 (Номер папки - от 1 до 99, Номер трека - от 1 до 255)
  delay(3000);                                                                            // Задержка в 3 секунды
  myDFPlayer.enableLoopAll();                                                             // Включить неперывное воспроизведение всех треков
  delay(3000);                                                                            // Задержка в 3 секунды
  myDFPlayer.disableLoopAll();                                                            // Выключить неперывное воспроизведение всех треков
  delay(3000);                                                                            // Задержка в 3 секунды
  myDFPlayer.playMp3Folder(4);                                                            // Включить воспроизведение указанного трека из папки MP3: SD:/MP3/0004.mp3; (Номер трека - от 0 до 65535)
  delay(3000);                                                                            // Задержка в 3 секунды
  myDFPlayer.advertise(3);                                                                // Включить воспроизведение указанного трека из папки ADVERT: SD:/ADVERT/0003.mp3; (Номер трека - от 0 до 65535)
  delay(3000);                                                                            // Задержка в 3 секунды
  myDFPlayer.stopAdvertise();                                                             // Выключить воспроизведение трека в режиме ADVERTISE
  delay(3000);                                                                            // Задержка в 3 секунды
  myDFPlayer.playLargeFolder(2, 999);                                                     // Включить воспроизведение указанного трека из указанной папки: SD:/02/004.mp3 (Номер папки - от 1 до 10, Номер трека - от 1 до 1000)
  delay(3000);                                                                            // Задержка в 3 секунды
  myDFPlayer.loopFolder(5);                                                               // Включить неперывное воспроизведение указанной (5) папки
  delay(3000);                                                                            // Задержка в 3 секунды
  myDFPlayer.randomAll();                                                                 // Включить случайное воспроизведение всех треков
  delay(3000);                                                                            // Задержка в 3 секунды
  myDFPlayer.enableLoop();                                                                // Включить неперывное воспроизведение треков
  delay(3000);                                                                            // Задержка в 3 секунды
  myDFPlayer.disableLoop();                                                               // Выключить неперывное воспроизведение треков
  delay(3000);                                                                            // Задержка в 3 секунды

  Serial.println(myDFPlayer.readState());                                                 // Выводим текст: "Состояние проигрывания файла" (512 - СТОП, 513 - ВОСПРОИЗВЕДЕНИЕ, 514 - ПАУЗА)
  Serial.println(myDFPlayer.readVolume());                                                // Выводим текст: "Значение установленной громкости"
  Serial.println(myDFPlayer.readEQ());                                                    // Выводим текст: "Тип установленного эквалайзера"
  Serial.println(myDFPlayer.readFileCounts());                                            // Выводим текст: "Количество файлов на СД-карте"
  Serial.println(myDFPlayer.readCurrentFileNumber());                                     // Выводим текст: "Номер проигрываемого трека"
  Serial.println(myDFPlayer.readFileCountsInFolder(3));                                   // Выводим текст: "Количество файлов в указанной (3) папке"
}

void loop() {
  if (millis() - timer > 3000) {                                                          // Раз в 3 секнуды выполняем:
    timer = millis();                                                                     // Обнуление счётчика
    myDFPlayer.next();                                                                    // Переключение трека на следующий
  }
  if (myDFPlayer.available()) {                                                           // Если плеер на связи, то
    printDetail(myDFPlayer.readType(), myDFPlayer.read());                                // Выводим подробный текст с описанием ошибок и текущего состояния
  }
}

void printDetail(uint8_t type, int value) {                                               // функция опроса плеера на предмет ошибок и текущего состояния
  switch (type) {                                                                         // в зависимости от полученного значения переменной 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 DFPlayerUSBInserted:  Serial.println("USB Inserted!");                 break;    // Выводим текст: "USB установлено"
    case DFPlayerUSBRemoved:   Serial.println("USB Removed!");                  break;    // Выводим текст: "USB отключено"
    case DFPlayerPlayFinished: Serial.print(F("Number:"));                                // Выводим текст: "Номер трека:"
                               Serial.print(value);                                       // Выводим значение 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;    //
  }
}

Описание функций библиотеки:

Подключение библиотеки:

    #include <SoftwareSerial.h>              // Подключаем библиотеку для работы с последовательным интерфейсом
    #include <DFRobotDFPlayerMini.h>         // Подключаем библиотеку для работы с плеером
    
    SoftwareSerial mySoftwareSerial(10, 11); // создаём объект mySoftwareSerial и указываем выводы, к которым подключен плеер (RX, TX)
    DFRobotDFPlayerMini myDFPlayer;          // создаём объект myDFPlayer для работы с плеером

    Функция begin();

    • Назначение: инициирование работы плеера;
    • Синтаксис: begin();
    • Параметры: Нет;
    • Возвращаемые значения: Нет;
    • Примечание:
      • Функцию необходимо вызвать до обращения к любым другим функциям библиотеки;
      • Функцию достаточно вызвать один раз в коде setup;
      • Функцию можно использовать для определения наличия плеера;
    • Пример:
    myDFPlayer.begin(mySoftwareSerial); // инициализируем работу плеера

    Функция available();

    • Назначение: проверка наличия связи с плеером;
    • Синтаксис: available();
    • Параметры: нет
    • Возвращаемые значения:
    • true - если есть связь / false - если связи нет;
    • Примечание: нет;
    • Пример:
      myDFPlayer.available(); // Запрос на наличие связи с плеером

      Функция setTimeOut();

      • Назначение: установка времени отклика плеера;
      • Синтаксис: setTimeOut(ПАРАМЕТР);
      • Параметры: 
        • ПАРАМЕТР - время отклика в мс;
      • Возвращаемые значения: нет;
      • Примечание: нет;
      • Пример:
        myDFPlayer.setTimeOut(500); // Устанавливаем время отклика плеера равным 500мс

        Функция volume();

        • Назначение: установка уровня громкости;
        • Синтаксис: volume(ПАРАМЕТР);
        • Параметры: 
          • ПАРАМЕТР - значение уровня громкости (от 0 до 30);
        • Возвращаемые значения: нет;
        • Примечание: 
        • Пример:
          myDFPlayer.volume(10); // Устанавливаем громкость равной 10 (от 0 до 30)

          Функция volumeUp;

          • Назначение: увеличение уровня громкости на 1 значение;
          • Синтаксис: volumeUp();
          • Параметры: нет;
          • Возвращаемые значения: нет;
          • Примечание: нет;
          • Пример:
            myDFPlayer.volumeUp(); // Увеличить громкость на 1

            Функция volumeDown();

            • Назначение: уменьшение уровня громкости на 1 значение;
            • Синтаксис: volumeDown();
            • Параметры: нет;
            • Возвращаемые значения: нет;
            • Примечание: нет;
            • Пример:
              myDFPlayer.volumeDown(); // Уменьшить громкость на 1

              Функция EQ();

              • Назначение: выбор одного из 6 предустановленных эквалайзеров;
              • Синтаксис: EQ(ПАРАМЕТР);
              • Параметры: 
                • ПАРАМЕТР - один из 6 типов предустановленных настроек эквалайзера:
                  • DFPLAYER_EQ_NORMAL;
                  • DFPLAYER_EQ_POP;
                  • DFPLAYER_EQ_ROCK;
                  • DFPLAYER_EQ_JAZZ;
                  • DFPLAYER_EQ_CLASSIC;
                  • DFPLAYER_EQ_BASS;
              • Возвращаемые значения: нет;
              • Примечание: 
              • Пример:
                myDFPlayer.EQ(DFPLAYER_EQ_NORMAL); // Устанавливаем эквалайзер с настройками NORMAL
                

                Функция outputDevice();

                • Назначение: указываем тип устройства, с которого будут воспроизводиться файлы;
                • Синтаксис: outputDevice(ПАРАМЕТР);
                • Параметры: 
                  • ПАРАМЕТР - один из 5 источников:
                    • DFPLAYER_DEVICE_U_DISK - подключен USB-диск;
                    • DFPLAYER_DEVICE_SD - подключена SD-карта;
                    • DFPLAYER_DEVICE_AUX - модуль используется как внешняя звуковая карта;
                    • DFPLAYER_DEVICE_SLEEP - модуль в режиме сна;
                    • DFPLAYER_DEVICE_FLASH - подключена USB-FLASH карта;
                • Возвращаемые значения: нет;
                • Примечание: нет;
                • Пример:
                  myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD); // Устанавливаем источником SD-карту

                  Функция sleep();

                  • Назначение: перевод плеера в режим сна;
                  • Синтаксис: sleep();
                  • Параметры: нет;
                  • Возвращаемые значения: нет;
                  • Примечание: нет;
                  • Пример:
                    myDFPlayer.sleep(); // Установить режим сна
                    

                    Функция reset();

                    • Назначение: сброс всех настроек;
                    • Синтаксис: reset();
                    • Параметры: нет
                    • Возвращаемые значения: нет;
                    • Примечание: нет;
                    • Пример:
                      myDFPlayer.reset(); // Сбросить все настройки
                      

                      Функция enableDAC;

                      • Назначение: включение ЦАП;
                      • Синтаксис: enableDAC();
                      • Параметры: нет
                      • Возвращаемые значения: нет;
                      • Примечание: нет;
                      • Пример:
                        myDFPlayer.enableDAC(); // Включить АЦП
                        

                        Функция disableDAC;

                        • Назначение: отключение ЦАП;
                        • Синтаксис: disableDAC();
                        • Параметры: нет;
                        • Возвращаемые значения: нет;
                        • Примечание: нет;
                        • Пример:
                          myDFPlayer.disableDAC(); // Выключить АЦП
                          

                          Функция outputSetting();

                          • Назначение: настройка усиления выходного сигнала;
                          • Синтаксис: outputSetting(ПАРАМЕТР_1, ПАРАМЕТР_2);
                          • Параметры:
                            • ПАРАМЕТР_1 - включить/выключить усиление выходного сигнала (true / false);
                            • ПАРАМЕТР_2 - коэффициент усиления звука (от 0 до 31);
                          • Возвращаемые значения: нет;
                          • Примечание: нет;
                          • Пример:
                            myDFPlayer.outputSetting(true, 15); // Включить усиление с коэффициентом усиления 15

                            Функция next();

                            • Назначение: смена трека на следующий;
                            • Синтаксис: next();
                            • Параметры: нет;
                            • Возвращаемые значения: нет;
                            • Примечание: нет;
                            • Пример:
                              myDFPlayer.next(); // Включить воспроизведение следующего трека
                              

                              Функция previous();

                              • Назначение: смена трека на предыдущий;
                              • Синтаксис: previous();
                              • Параметры: нет;
                              • Возвращаемые значения: нет;
                              • Примечание: нет;
                              • Пример:
                                myDFPlayer.previous(); // Включить воспроизведение предыдущего трека
                                

                                Функция play();

                                • Назначение: включить воспроизведение первого или указанного трека
                                • Синтаксис: play(ПАРАМЕТР);
                                • Параметры: 
                                  • Если ПАРАМЕТР указан - начать воспроизведение указанного трека в первой папке;
                                  • Если ПАРАМЕТР не указан - начать воспроизведение первого трека в первой папке;
                                • Возвращаемые значения: нет;
                                • Примечание: нет;
                                • Пример:
                                  myDFPlayer.play(1); // Включить воспроизведение указанного (1) трека
                                  

                                  Функция loop();

                                  • Назначение: включить непрерывное воспроизведение треков;
                                  • Синтаксис: loop(ПАРАМЕТР);
                                  • Параметры: 
                                    • ПАРАМЕТР - номер трека, который следует включать непрерывно;
                                  • Возвращаемые значения: нет;
                                  • Примечание: нет;
                                  • Пример:
                                    myDFPlayer.loop(1); // Включить непрерывное воспроизведение указанного (1) трека
                                    

                                    Функция pause();

                                    • Назначение: поставить трек, который воспроизводится, на паузу;
                                    • Синтаксис: pause();
                                    • Параметры: нет;
                                    • Возвращаемые значения: нет;
                                    • Примечание: нет;
                                    • Пример:
                                      myDFPlayer.pause(); // Поставить воспроизведение на паузу
                                      

                                      Функция start();

                                      • Назначение: продолжить воспроизводить трек, если до этого он был поставлен на паузу;
                                      • Синтаксис: start();
                                      • Параметры: нет;
                                      • Возвращаемые значения: нет;
                                      • Примечание: нет;
                                      • Пример:
                                        myDFPlayer.start(); // Продолжить воспроизведение трека (после паузы)
                                        

                                        Функция playFolder();

                                        • Назначение: играть указанный трек в указанной папке;
                                        • Синтаксис: playFolder(ПАРАМЕТР_1, ПАРАМЕТР_2);
                                        • Параметры: 
                                          • ПАРАМЕТР_1 - номер папки (от 1 до 99);
                                          • ПАРАМЕТР_2 - номер трека (от 1 до 255);
                                        • Возвращаемые значения: нет;
                                        • Примечание: нет;
                                        • Пример:
                                          myDFPlayer.playFolder(15, 4); // Включить воспроизведение указанного трека из указанной папки
                                          

                                          Функция enableLoopAll;

                                          • Назначение: включить непрерывное воспроизведение всех треков;
                                          • Синтаксис: enableLoopAll();
                                          • Параметры: нет;
                                          • Возвращаемые значения: нет;
                                          • Примечание: нет;
                                          • Пример:
                                            myDFPlayer.enableLoopAll(); // Включить непрерывное воспроизведение всех треков
                                            

                                            Функция disableLoopAll();

                                            • Назначение: выключить непрерывное воспроизведение всех треков;
                                            • Синтаксис: disableLoopAll();
                                            • Параметры: нет;
                                            • Возвращаемые значения: нет;
                                            • Примечание: нет;
                                            • Пример:
                                              myDFPlayer.disableLoopAll(); // Выключить непрерывное воспроизведение всех треков
                                              

                                              Функция playMp3Folder();

                                              • Назначение: начать воспроизведение указанного трека в папке "MP3";
                                              • Синтаксис: playMp3Folder(ПАРАМЕТР);
                                              • Параметры:
                                                • ПАРАМЕТР - номер трека в папке "MP3" (от 0 до 65535);
                                              • Возвращаемые значения: нет;
                                              • Примечание: нет;
                                              • Пример:
                                                myDFPlayer.playMp3Folder(4); // Включить воспроизведение указанного трека из папки MP3
                                                

                                                Функция advertise();

                                                • Назначение: включить воспроизведение указанного трека в режиме "ADVERTISE" (реклама)
                                                • Синтаксис: advertise(ПАРАМЕТР);
                                                • Параметры: 
                                                  • ПАРАМЕТР - номер трека в папке "ADVERT";
                                                • Возвращаемые значения: нет;
                                                • Примечание: нет;
                                                • Пример:
                                                  myDFPlayer.advertise(3); // Включить воспроизведение указанного трека из папки ADVERT
                                                  

                                                  Функция stopAdvertise();

                                                  • Назначение: прекратить воспроизведение треков в режиме "ADVERTISE" (реклама)
                                                  • Синтаксис: stopAdvertise();
                                                  • Параметры: нет;
                                                  • Возвращаемые значения: нет;
                                                  • Примечание: нет;
                                                  • Пример:
                                                    myDFPlayer.stopAdvertise(); // Выключить воспроизведение трека в режиме ADVERTISE
                                                    

                                                    Функция playLargeFolder();

                                                    • Назначение: начать воспроизведение указанного трека из указанной папки с бОльшим, чем обычно, количеством треков;
                                                    • Синтаксис: playLargeFolder(ПАРАМЕТР_1, ПАРАМЕТР_2);
                                                    • Параметры:
                                                      • ПАРАМЕТР_1 - номер папки (от 1 до 10);
                                                      • ПАРАМЕТР_2 - номер трека (от 1 до 999);
                                                    • Возвращаемые значения: нет;
                                                    • Примечание: нет;
                                                    • Пример:
                                                      myDFPlayer.playLargeFolder(2, 999); // Включить воспроизведение указанного трека из указанной папки
                                                      

                                                      Функция loopFolder();

                                                      • Назначение: включить непрерывное воспроизведение всех файлов в указанной папке;
                                                      • Синтаксис: loopFolder(ПАРАМЕТР);
                                                      • Параметры:
                                                        • ПАРАМЕТР - номер папки (от 1 до 99);
                                                      • Возвращаемые значения: нет;
                                                      • Примечание: нет;
                                                      • Пример:
                                                        myDFPlayer.loopFolder(5); // Включить непрерывное воспроизведение указанной (5) папки
                                                        

                                                        Функция randomAll();

                                                        • Назначение: перемешать порядок воспроизведения всех треков;
                                                        • Синтаксис: randomAll();
                                                        • Параметры: нет;
                                                        • Возвращаемые значения: нет;
                                                        • Примечание: нет;
                                                        • Пример:
                                                          myDFPlayer.randomAll(); // Включить случайное воспроизведение всех треков
                                                          

                                                          Функция enableLoop();

                                                          • Назначение: включить непрерывное воспроизведение треков;
                                                          • Синтаксис: enableLoop();
                                                          • Параметры: нет;
                                                          • Возвращаемые значения: нет;
                                                          • Примечание: нет;
                                                          • Пример:
                                                            myDFPlayer.enableLoop(); // Включить непрерывное воспроизведение треков
                                                            

                                                            Функция disableLoop();

                                                            • Назначение: выключить непрерывное воспроизведение треков;
                                                            • Синтаксис: disableLoop();
                                                            • Параметры: нет;
                                                            • Возвращаемые значения: нет;
                                                            • Примечание: нет;
                                                            • Пример:
                                                              myDFPlayer.disableLoop(); // Выключить непрерывное воспроизведение треков
                                                              

                                                              Функция readState();

                                                              • Назначение: запрос состояния плеера
                                                              • Синтаксис: readState();
                                                              • Параметры: нет;
                                                              • Возвращаемые значения:
                                                                • 512 - воспроизведение остановлено;
                                                                • 513 - воспроизведение выполняется;
                                                                • 514 - воспроизведение стоит на паузе;
                                                              • Примечание: нет;
                                                              • Пример:
                                                                myDFPlayer.readState(); // Состояние проигрывания файла
                                                                

                                                                Функция readVolume();

                                                                • Назначение: запрос уровня громкости;
                                                                • Синтаксис: readVolume();
                                                                • Параметры: нет;
                                                                • Возвращаемые значения:
                                                                  • Значение уровня громкости (от 0 до 30)
                                                                • Примечание: 
                                                                • Пример:
                                                                  myDFPlayer.readVolume(); // Значение установленной громкости
                                                                  

                                                                  Функция readEQ();

                                                                  • Назначение: запрос номера установленного эквалайзера;
                                                                  • Синтаксис: readEQ();
                                                                  • Параметры: нет;
                                                                  • Возвращаемые значения:
                                                                    • Значение от 0 до 5, соответствующее следующему списку:
                                                                      • 0 - DFPLAYER_EQ_NORMAL;
                                                                      • 1 - DFPLAYER_EQ_POP;
                                                                      • 2 - DFPLAYER_EQ_ROCK;
                                                                      • 3 - DFPLAYER_EQ_JAZZ;
                                                                      • 4 - DFPLAYER_EQ_CLASSIC;
                                                                      • 5 - DFPLAYER_EQ_BASS;
                                                                  • Примечание: нет;
                                                                  • Пример:
                                                                    myDFPlayer.readEQ(); // Тип установленного эквалайзера
                                                                    

                                                                    Функция readFileCounts();

                                                                    • Назначение: запрос общего количества файлов во всех папках;
                                                                    • Синтаксис: readFileCounts();
                                                                    • Параметры: нет;
                                                                    • Возвращаемые значения:
                                                                      • Общее количество файлов;
                                                                    • Примечание: 
                                                                    • Пример:
                                                                      myDFPlayer.readFileCounts(); // Количество файлов на SD-карте
                                                                      

                                                                      Функция readCurrentFileNumber();

                                                                      • Назначение: запрос номера трека, который воспроизводится;
                                                                      • Синтаксис: readCurrentFileNumber();
                                                                      • Параметры: нет;
                                                                      • Возвращаемые значения:
                                                                        • Номер трека;
                                                                      • Примечание: нет;
                                                                      • Пример:
                                                                        myDFPlayer.readCurrentFileNumber(); // Номер проигрываемого трека
                                                                        

                                                                        Функция readFileCountsInFolder();

                                                                        • Назначение: запрос количества треков в указанной папке;
                                                                        • Синтаксис: readFileCountsInFolder();
                                                                        • Параметры: нет;
                                                                        • Возвращаемые значения:
                                                                          • Число файлов в указанной папке;
                                                                        • Примечание: 
                                                                        • Пример:
                                                                          myDFPlayer.readFileCountsInFolder(3); // Количество файлов в указанной (3) папке

                                                                          Функция readFolderCounts();

                                                                          • Назначение: запрос общего количества папок;
                                                                          • Синтаксис: readFolderCounts();
                                                                          • Параметры: нет;
                                                                          • Возвращаемые значения:
                                                                            • Общее количество папок;
                                                                          • Примечание: 
                                                                          • Пример:
                                                                            myDFPlayer.readFolderCounts(); // 

                                                                            Функция readType();

                                                                            • Назначение: запрос кода ошибки/состояния работы плеера;
                                                                            • Синтаксис: readType();
                                                                            • Параметры: нет;
                                                                            • Возвращаемые значения:
                                                                              • Одно из следующих значений:
                                                                                • TimeOut - время ожидания ответа истекло;
                                                                                • WrongStack - не верный стек;
                                                                                • DFPlayerCardInserted - карта установлена;
                                                                                • DFPlayerCardRemoved - карта изъята;
                                                                                • DFPlayerCardOnline - карта на связи;
                                                                                • DFPlayerUSBInserted - USB установлено
                                                                                • DFPlayerUSBRemoved - USB изъято;
                                                                                • DFPlayerPlayFinished - проигрывание файла завершено;
                                                                                  • в связке с функцией read() можно так же вернуть номер трека;
                                                                                • DFPlayerError - наличие ошибки
                                                                                  • в связке с функцией read() можно так же получить дополнительный параметр:
                                                                                    • Busy - карта не найдена;
                                                                                    • Sleeping - плеер в режиме сна;
                                                                                    • SerialWrongStack - ошибка стека;
                                                                                    • CheckSumNotMatch - ошибка контрольной суммы;
                                                                                    • FileIndexOut - номер трека превысил допустимый диапазон;
                                                                                    • FileMismatch - файл не найден;
                                                                                    • Advertise - плеер в режиме "ADVERTISE" (реклама);
                                                                            • Примечание:
                                                                              • Функция используется в связке с функцией read() для получения дополнительных параметров данных;
                                                                            • Пример:
                                                                              myDFPlayer.readType(); // запрос кода ошибки/состояния работы плеера

                                                                              Функция read();

                                                                              • Назначение: запрос параметра кода ошибки/состояния плеера;
                                                                              • Синтаксис: read();
                                                                              • Параметры: нет;
                                                                              • Возвращаемые значения:
                                                                                • Параметр кода ошибки/состояния плеера.
                                                                              • Примечание:
                                                                              • функция используется в связке с функцией readType() для получения дополнительных параметров данных;
                                                                              • Пример:
                                                                                myDFPlayer.read(); // запрос параметра кода ошибки/состояния работы плеера;

                                                                                Функция waitAvailable();

                                                                                • Назначение: ожидание ответа от плеера;
                                                                                • Синтаксис: waitAvailable(ПАРАМЕТР);
                                                                                • Параметры:
                                                                                  • Если ПАРАМЕТР установлен - время в мс, в течении которого ожидается ответ;
                                                                                  • Если ПАРАМЕТР не установлен - ожидание ответа равно 0мс;
                                                                                • Возвращаемые значения: нет;
                                                                                • Примечание:
                                                                                  • Необязательная функция, которую можно использовать для дополнительной проверки связи с плеером;
                                                                                • Пример:
                                                                                  myDFPlayer.waitAvailable(); // запрос связи с плеером;

                                                                                  Применение:

                                                                                  • звуковое сопровождение проектов, озвучание эффектов;
                                                                                  • режим воспроизведения голосовых сообщений, построение системы охраны и оповещения;

                                                                                  Ссылки:

                                                                                  Обсуждение