Найти в Дзене
ТехноКод

Подключение и управление DFPlayer Mini (MP3-TF-16P) к Arduino Nano

DFPlayer Mini (или его аналог MP3-TF-16P) — популярный MP3-модуль для воспроизведения звука с microSD-карты. В этой статье рассмотрим: DFPlayer Mini Arduino Nano VCC 5V GND GND TX D2 (через резистор 1К) RX D3 SPK1 / SPK2 Динамик 🔹 Важно: 2. Установка библиотеки DFPlayer Mini Для работы с модулем используем библиотеку DFRobotDFPlayerMini. 📌 Установка: #include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySerial(2, 3); // RX, TX (D2, D3)
DFRobotDFPlayerMini myDFPlayer;
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
if (!myDFPlayer.begin(mySerial)) {
Serial.println("DFPlayer не подключен!");
while (true);
}
Serial.println("DFPlayer готов!");
myDFPlayer.volume(15); // Громкость (0-30)
myDFPlayer.play(1); // Воспроизвести трек 1
}
void loop() {
// Ничего не делаем в цикле
} 🔹 Как это
Оглавление
Подключение и управление DFPlayer Mini (MP3-TF-16P) к Arduino Nano
Подключение и управление DFPlayer Mini (MP3-TF-16P) к Arduino Nano

DFPlayer Mini (или его аналог MP3-TF-16P) — популярный MP3-модуль для воспроизведения звука с microSD-карты. В этой статье рассмотрим:

  • Схему подключения к Arduino Nano
  • Базовые скетчи для воспроизведения треков
  • Определение окончания трека
  • Управление громкостью
  • Выполнение действий после завершения воспроизведения

1. Подключение DFPlayer Mini к Arduino Nano

Необходимые компоненты

  • Arduino Nano
  • DFPlayer Mini (или MP3-TF-16P)
  • microSD-карта (FAT32, с треками в формате .mp3 или .wav)
  • Динамик (4–8 Ом) или наушники
  • Резистор 1К (для защиты RX)
  • Макетная плата и провода, либо соединение на прямую.

Схема подключения

DFPlayer Mini Arduino Nano

VCC 5V

GND GND

TX D2 (через резистор 1К)

RX D3

SPK1 / SPK2 Динамик

🔹 Важно:

  • TX модуля подключается к D2 Arduino через резистор 1К (для защиты входа).
  • RX модуля — к D3 (можно использовать другие пины, но нужно изменить скетч).
  • Звуковой выход (SPK1/SPK2) подключается к динамику.
Схема подключения DFPlayer Mini - Arduino Nano
Схема подключения DFPlayer Mini - Arduino Nano

2. Установка библиотеки DFPlayer Mini

Для работы с модулем используем библиотеку DFRobotDFPlayerMini.

📌 Установка:

  1. В Arduino IDE: Скетч → Подключить библиотеку → Управлять библиотеками.
  2. Ввести "DFRobotDFPlayerMini" и установить.

3. Базовый скетч: воспроизведение треков

#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

SoftwareSerial mySerial(2, 3);
// RX, TX (D2, D3)
DFRobotDFPlayerMini myDFPlayer;

void setup() {
Serial.begin(9600);
mySerial.begin(9600);

if (!myDFPlayer.begin(mySerial)) {
Serial.println("DFPlayer не подключен!");
while (true);
}

Serial.println("DFPlayer готов!");
myDFPlayer.volume(15);
// Громкость (0-30)
myDFPlayer.play(1);
// Воспроизвести трек 1
}

void loop() {
// Ничего не делаем в цикле
}

🔹 Как это работает:

  • myDFPlayer.begin() — инициализация модуля.
  • myDFPlayer.volume(15) — установка громкости (0–30).
  • myDFPlayer.play(1) — воспроизведение трека 0001.mp3 на карте.

📌 Формат файлов на microSD:

Copy

Download

/MP3/
├── 0001.mp3
├── 0002.mp3
└── ...

4. Как определить, что трек завершился?

DFPlayer Mini может отправлять сигнал о завершении трека.

Скетч с обработкой окончания трека

#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

SoftwareSerial mySerial(2, 3);
DFRobotDFPlayerMini myDFPlayer;

void setup() {
Serial.begin(9600);
mySerial.begin(9600);

if (!myDFPlayer.begin(mySerial)) {
Serial.println("Ошибка подключения DFPlayer!");
while (true);
}

myDFPlayer.volume(15);
myDFPlayer.play(1);

// Включаем обработчик завершения трека
myDFPlayer.enableLoop();
}

void loop() {
if (myDFPlayer.available()) {
// Читаем тип сообщения от DFPlayer
uint8_t type = myDFPlayer.readType();

if (type == DFPlayerPlayFinished) {
Serial.println("Трек завершен!");
// Здесь можно выполнить действие (например, включить следующий трек)
delay(1000);
myDFPlayer.next();
// Воспроизвести следующий трек
}
}
}

🔹 Что происходит:

  • myDFPlayer.available() — проверяет, есть ли данные от модуля.
  • DFPlayerPlayFinished — сигнал о завершении трека.

5. Управление громкостью

Громкость меняется командой myDFPlayer.volume(XX) (0–30).

Пример: плавное увеличение громкости

void setup() {
// ... (инициализация как в предыдущих примерах)

for (int vol = 0; vol <= 20; vol++) {
myDFPlayer.volume(vol);
delay(200);
}
myDFPlayer.play(1);
}

6. Выполнение действия после завершения трека

Допустим, после окончания мелодии нужно включить светодиод.

Скетч с управлением светодиодом

#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

#define LED_PIN 13

SoftwareSerial mySerial(2, 3);
DFRobotDFPlayerMini myDFPlayer;

void setup() {
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
mySerial.begin(9600);

if (!myDFPlayer.begin(mySerial)) {
Serial.println("DFPlayer не подключен!");
while (true);
}

myDFPlayer.volume(15);
myDFPlayer.play(1);
}

void loop() {
if (myDFPlayer.available()) {
uint8_t type = myDFPlayer.readType();

if (type == DFPlayerPlayFinished) {
Serial.println("Трек завершен! Включаем светодиод.");
digitalWrite(LED_PIN, HIGH);
// Зажигаем светодиод
delay(2000);
digitalWrite(LED_PIN, LOW);
// Гасим светодиод
}
}
}

Выводы

  • DFPlayer Mini легко подключается к Arduino Nano через SoftwareSerial.
  • Для воспроизведения треков используем myDFPlayer.play(N).
  • Окончание трека определяется по DFPlayerPlayFinished.
  • Громкость регулируется командой volume().
  • После завершения трека можно выполнять любые действия (включение реле, светодиода и т. д.).

🚀 Дополнительные возможности:

  • Воспроизведение треков в случайном порядке (myDFPlayer.randomAll()).
  • Пауза (myDFPlayer.pause()), продолжение (myDFPlayer.start()).
  • Воспроизведение треков из папок (myDFPlayer.playFolder(1, 2) — папка 1, трек 2).

Если модуль не работает, проверьте:
✅ Правильность подключения RX/TX
✅ Формат microSD (FAT32)
✅ Название файлов (0001.mp3, 0002.mp3...)

Удачных проектов! 🎵