Мп3 плејер који користи ДФ плејер - детаљи о целом дизајну

Испробајте Наш Инструмент За Елиминисање Проблема





У овом посту ћемо направити МП3 плејер користећи ардуино и ДФПлаиер. Предложени чланак има два дизајна Мп3 плејера, један са управљањем помоћу тастера и други са ИЦ даљинским управљачем. Такође ћемо погледати ДФПлаиер (модул за МП3 плејер) и његове спецификације.

Сви волимо музику, волели бисмо да је чујемо док смо у теретани, читамо, неколико тренутака пре спавања или док се умирујемо након напорног радног дана.



Конструисање музичког плејера код куће пре неколико деценија било је готово немогуће за љубитеље електронике због сложености конструкције због механичких компонената.

У то доба у касету се могао сместити само ограничени број песама. Пресликавање песме на другу касету такође је била ноћна мора. Али сада, захваљујући напретку у електроници, МП3 плејер можете од џепара направити од нуле.



Пређимо сада на техничке детаље пројекта.

Срце пројекта је ДФПлаиер који је мали модул Мп3 плаиера који може да прими микро СД картицу и којим се може управљати помоћу микроконтролера.

Илустрација ДФПлаиер-а:

ДФПлаиер

Има уграђено појачало које може покретати звучнике снаге 3 В у стерео или моно режиму. Има 24-битни дигитално-аналогни претварач (ДАЦ), што је прилично добро за тако јефтин и компактан модул.

Поглед одоздо на ДФПлаиер:

Поглед одоздо на ДФПлаиер

Подржава МП3 и ВМВ хардверско декодирање. Подржава брзину узорковања од
8КХз, 11.025КХз, 12КХз, 1 6КХз, 22.05КХз, 24КХз, 32КХз, 44.1КХз, 48КХз.

Може да подржи до 32ГБ мицро СД картице. Подржава до 100 директоријума, свакој фасцикли се може доделити до 1000 песама.

Има 6 различитих нивоа еквилајзера и 30 нивоа контроле подешавања јачине звука. Може радити од 3.2В до 5В.

Конфигурација пин-а ДФПлаиер-а:

Конфигурација пин-а ДФПлаиер-а

Горње спецификације засноване су на техничком листу ДФПлаиер-а.

До сада бисте већ били упознати са ДФПлаиер-ом и његовим спецификацијама. Овај модул можете купити на сајтовима е-трговине или на локалном тржишту електронике.

Хајде сада да ускочимо у шематски дијаграм.

Дизајн МП3 плејера са дугметом:

Мп3 плејер који користи Ардуино и ДФПлаиер

Горње коло је врло једноставно, ардуино шаље наредбе ДФПлаиер модулу за контролу песама. Корисник може унети свој избор помоћу тастера.

Уграђени отпорник за извлачење ардуина активиран је у програму, тако да не морамо да причвршћујемо физички отпорник на тастере.

Покушајте да користите звучнике доброг квалитета, ДФПлаиер може пружити звук врло доброг квалитета.

Ако нађете изобличења у звуку на већим нивоима јачине звука, напајајте ДФПлаиер модул споља на 5В једносмерне струје са заједничком земаљском везом између ардуина и ДФПлаиер-а.

Ако желите подешавање стерео звука, спојите један звучник на СПК1 ДФПлаиер-а, а други звучник на СПК2 и уземљите преостале жице звучника.

Програм за контролу тастера:

//---------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------//

Сада пређимо на дизајн на основу даљинског управљача.

Шема за ИЦ плејер који контролише ИР:


Горњи дизајн је једноставан јер је тастер заснован, једина разлика је уклањање тастера и укључивање ТСОП 1738 ИР пријемника. Примљени сигнал са ИР даљинског управљача доводи се на А0 пин ардуина.

Сада за управљање овим Мп3 плејером потребан вам је резервни телевизор или било који други даљински управљач заснован на ИЦ-у који можда лежи на вашем смећу. Морате одлучити која дугмад за контролу функција попут репродукције и паузе итд.

Постоји 6 функција:

1) Репродукујте и направите паузу
2) Следећа песма
3) Претходна песма
4) Повећање запремине
5) Смањење јачине звука
6) Еквилајзер звука (Нормал / Поп / Роцк / Јазз / Цлассиц / Басе)

Морате одабрати дугмад на даљинском управљачу и пронаћи његове хексадецималне кодове оних дугмади које ће даљински преносити. Да бисте пронашли хексадецимални код, преузмите ИР библиотеку ако то није учињено.

гитхуб.цом/з3т0/Ардуино-ИРремоте

Додајте библиотеку у софтвер ардуино и идите на Датотека> Примери> ИРремоте> ИРрецвДемо и отпремите код са завршеним хардверским подешавањем.

Отворите серијски монитор и притисните тастере на даљинском управљачу, видећете хексадецималне кодове, забележите их одговарајућим дугметом на парчету папира.

Морате да унесете хексадецимални код у програм дат у наставку. Када унесете хексадецималне кодове у дати програм, отпремите их. Спремни сте за управљање песмама са даљинског управљача.

Програм за ИР дизајн на основу:

//---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: Покушајте да све своје песме ставите на СД картицу без директоријума.

Ауторски прототип:




Претходно: Круг интернетског предајника ЛиФи - УСБ пренос сигнала кроз ЛЕД Следеће: СМПС круг са 7 В ЛЕД управљачким програмом - контролисан струјом