Mp3-плеер с использованием DF Player - полная информация о дизайне

Попробуйте наш инструмент устранения неполадок





В этом посте мы собираемся сконструировать Mp3-плеер с использованием Arduino и DFPlayer. Предлагаемое изделие имеет два дизайна Mp3-плеера, один с кнопочным управлением, а другой с ИК-пультом. Мы также рассмотрим DFPlayer (модуль Mp3-плеера) и его характеристики.

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



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

В те времена на кассету можно было записать лишь ограниченное количество песен. Копирование песни на другую кассету тоже было кошмаром. Но теперь, благодаря развитию электроники, Mp3-плеер можно сделать с нуля на свои карманные деньги.



Теперь перейдем к техническим деталям проекта.

Сердцем проекта является DFPlayer, небольшой модуль Mp3-плеера, в который можно установить карту памяти micro SD и которым можно управлять с помощью микроконтроллера.

Иллюстрация DFPlayer:

DFPlayer

Он имеет встроенный усилитель, который может управлять громкоговорителями мощностью 3 Вт в стерео или моно. Он имеет 24-битный цифро-аналоговый преобразователь (ЦАП), что довольно неплохо для такого недорогого и компактного модуля.

Вид DFPlayer снизу:

Вид DFPlayer снизу

Он поддерживает аппаратное декодирование MP3 и WMV. Он поддерживает частоту дискретизации
8 кГц, 11,025 кГц, 12 кГц, 1 6 кГц, 22,05 кГц, 24 кГц, 32 кГц, 44,1 кГц, 48 кГц.

Он может поддерживать карту micro SD объемом до 32 ГБ. Он поддерживает до 100 папок, каждой папке можно назначить до 1000 песен.

Он имеет 6 различных уровней эквалайзера и 30 уровней регулировки громкости. Он может работать от 3,2 В до 5 В.

Конфигурация контактов DFPlayer:

Конфигурация контактов DFPlayer

Вышеуказанные характеристики основаны на технических данных DFPlayer.

К настоящему времени вы уже знакомы с DFPlayer и его спецификацией. Вы можете приобрести этот модуль на сайтах электронной коммерции или на местном рынке электроники.

Теперь перейдем к принципиальной схеме.

Дизайн кнопочного Mp3 плеера:

Mp3-плеер с использованием Arduino и DFPlayer

Вышеупомянутая схема очень проста: arduino отправляет команды модулю DFPlayer для управления песнями. Пользователь может ввести свой выбор с помощью кнопок.

Встроенный подтягивающий резистор Arduino был активирован в программе, поэтому нам не нужно подключать физический резистор к кнопкам.

Попробуйте использовать динамики хорошего качества - DFPlayer может воспроизводить звук очень хорошего качества.

Если вы обнаружите какие-либо искажения в звуке на более высоких уровнях громкости, подключите модуль DFPlayer к внешнему напряжению 5 В постоянного тока с общим заземлением между Arduino и DFPlayer.

Если вы хотите настроить стереозвук, подключите один из динамиков к SPK1 DFPlayer, а другой динамик к SPK2 и заземлите остальные провода динамиков.

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

//---------Developed by R.Girish------//
#include
SoftwareSerial mySerial(10, 11)
# define Start_Byte 0x7E
# define Version_Byte 0xFF
# define Command_Length 0x06
# define End_Byte 0xEF
# define Acknowledge 0x00
const int btnNext = A0
const int btnPause = A1
const int btnPrevious = A2
const int volumeUP = A3
const int volumeDOWN = A4
int volume = 15
boolean Playing = false
void setup ()
{
pinMode(btnPause, INPUT)
pinMode(btnNext, INPUT)
pinMode(btnPrevious, INPUT)
pinMode(volumeUP, INPUT)
pinMode(volumeDOWN, INPUT)
digitalWrite(btnPause, HIGH)
digitalWrite(btnNext, HIGH)
digitalWrite(btnPrevious, HIGH)
digitalWrite(volumeUP, HIGH)
digitalWrite(volumeDOWN, HIGH)
mySerial.begin(9600)
delay(1000)
playFirst()
Playing = true
}
void loop ()
{
if (digitalRead(btnPause) == LOW)
{
if(Playing)
{
pause()
Playing = false
}
else
{
Playing = true
play()
}
}
if (digitalRead(btnNext) == LOW)
{
if(Playing)
{
next()
}
}
if (digitalRead(btnPrevious) == LOW)
{
if(Playing)
{
previous()
}
}
if(digitalRead(volumeUP) == LOW)
{
volumeINC()
}
if(digitalRead(volumeDOWN) == LOW)
{
volumeDEC()
}
}
void playFirst()
{
exe_cmd(0x3F, 0, 0)
delay(500)
exe_cmd(0x06, 0, volume)
delay(500)
exe_cmd(0x11,0,1)
delay(500)
}
void pause()
{
exe_cmd(0x0E,0,0)
delay(500)
}
void play()
{
exe_cmd(0x0D,0,1)
delay(500)
}
void next()
{
exe_cmd(0x01,0,1)
delay(500)
}
void previous()
{
exe_cmd(0x02,0,1)
delay(500)
}
void volumeINC()
{
volume = volume+1
if(volume==31)
{
volume=30
}
exe_cmd(0x06, 0, volume)
delay(500)
}
void volumeDEC()
{
volume = volume-1
if(volume==-1)
{
volume=0
}
exe_cmd(0x06, 0, volume)
delay(500)
}
void exe_cmd(byte CMD, byte Par1, byte Par2)
{
word checksum = -(Version_Byte + Command_Length + CMD + Acknowledge + Par1 + Par2)
byte Command_line[10] = { Start_Byte, Version_Byte, Command_Length, CMD, Acknowledge, Par1, Par2, highByte(checksum), lowByte(checksum), End_Byte}
for (byte x=0 x<10 x++)
{
mySerial.write(Command_line[x])
}
}
//---------Developed by R.Girish------//

Теперь перейдем к дизайну на основе ИК-пульта.

Схема для Mp3-плеера с ИК-управлением:


Вышеупомянутая конструкция проста, поскольку основана на кнопке, единственное отличие - удаление кнопок и включение ИК-приемника TSOP 1738. Полученный сигнал от ИК-пульта ДУ подается на вывод A0 Arduino.

Теперь, чтобы управлять этим Mp3-плеером, вам понадобится запасной телевизор или любой другой ИК-пульт, который может лежать на вашем ящике для мусора. Вы должны решить, какие кнопки для управления такими функциями, как воспроизведение, пауза и т. Д.

Всего 6 функций:

1) Воспроизведение и пауза
2) Следующая песня
3) Предыдущая песня
4) Увеличение громкости
5) Уменьшение громкости
6) Звуковой эквалайзер (Normal / Pop / Rock / Jazz / Classic / Base)

Вам нужно выбрать кнопки на пульте и найти его шестнадцатеричные коды тех кнопок, которые будут передаваться пультом. Чтобы найти шестнадцатеричный код, загрузите ИК-библиотеку, если это не сделано.

github.com/z3t0/Arduino-IRremote

Добавьте библиотеку в программное обеспечение arduino, перейдите в меню «Файл»> «Примеры»> «IRremote»> «IRrecvDemo» и загрузите код с завершенной настройкой оборудования.

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

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

Программа для проектирования ИК-пультов:

//---Developed by R.Girish--//
#include
#include
SoftwareSerial mySerial(10,11)
# define Start_Byte 0x7E
# define Version_Byte 0xFF
# define Command_Length 0x06
# define End_Byte 0xEF
# define Acknowledge 0x00
//--------------------------------------------------------//
# define pause_play 0x2FD08F7
# define next_song 0x2FDD827
# define prev_song 0x2FDF807 //REPLACE THESE HEX CODE WITH YOUR REMOTE BUTTON CODE STARTS “0x”
# define vol_inc 0x2FD58A7
# define vol_dec 0x2FD7887
# define sound_equalizer 0x2FD30CF
//-------------------------------------------------------//
const int receive = A0
IRrecv irrecv(receive)
decode_results dec
int volume = 15
int eqset = 0
boolean Playing = false
void setup ()
{
irrecv.enableIRIn()
mySerial.begin(9600)
delay(1000)
playFirst()
Playing = true
}
void loop ()
{
if(irrecv.decode(&dec))
{
if (dec.value==pause_play)
{
if(Playing)
{
pause()
Playing = false
}
else
{
Playing = true
play()
}
}
if (dec.value==next_song)
{
if(Playing)
{
next()
}
}
if (dec.value==prev_song)
{
if(Playing)
{
previous()
}
}
if(dec.value==vol_inc)
{
volumeINC()
}
if(dec.value==vol_dec)
{
volumeDEC()
}
if(dec.value==sound_equalizer)
{
equalizer()
}
irrecv.resume()
}
}
void playFirst()
{
exe_cmd(0x3F, 0, 0)
delay(100)
exe_cmd(0x06, 0, volume)
delay(100)
exe_cmd(0x11,0,1)
delay(100)
}
void pause()
{
exe_cmd(0x0E,0,0)
delay(100)
}
void play()
{
exe_cmd(0x0D,0,1)
delay(100)
}
void next()
{
exe_cmd(0x01,0,1)
delay(100)
}
void previous()
{
exe_cmd(0x02,0,1)
delay(100)
}
void volumeINC()
{
volume = volume+1
if(volume == 31)
{
volume = 30
}
exe_cmd(0x06, 0, volume)
delay(100)
}
void volumeDEC()
{
volume = volume-1
if(volume == -1)
{
volume = 0
}
exe_cmd(0x06, 0, volume)
delay(100)
}
void equalizer()
{
eqset = eqset+1
if(eqset == 6)
{
eqset = 0
}
exe_cmd(0x07, 0 ,eqset)
delay(100)
}
void exe_cmd(byte CMD, byte Par1, byte Par2)
{
word checksum = -(Version_Byte + Command_Length + CMD + Acknowledge + Par1 + Par2)
byte Command_line[10] = { Start_Byte, Version_Byte, Command_Length, CMD, Acknowledge, Par1, Par2, highByte(checksum), lowByte(checksum), End_Byte}
for (byte x=0 x<10 x++)
{
mySerial.write(Command_line[x])
}
}
//---------Developed by R.Girish------//

ПРИМЕЧАНИЕ 1: вы можете увидеть предупреждение в программе во время компиляции, не обращайте на него внимания.

ПРИМЕЧАНИЕ 2: Попробуйте поместить все свои песни на SD-карту без папок.

Авторский прототип:




Предыдущая статья: Схема передатчика Интернета LiFi - Передача сигнала USB через светодиод Следующая статья: Схема SMPS с драйвером светодиодов 7 Вт - с контролем тока