Projetos de circuito eletrônicoProjetos de engenharia do ArduinoMp3 Player usando DF Player – Detalhes completos do design

Mp3 Player usando DF Player – Detalhes completos do design

Relacionados

Neste post vamos construir um MP3 player usando arduino e DFPlayer. O artigo proposto tem dois projetos de MP3 player, um com controle por botão e outro com controle remoto IR. Também veremos o DFPlayer (módulo de MP3 player) e suas especificações.

Todos nós amamos música, gostaríamos de ouvi-la enquanto estamos na academia, lendo, momentos antes de dormir ou enquanto nos acalmamos depois de um dia de trabalho duro.

Construir um tocador de música em casa algumas décadas atrás era quase impossível para um entusiasta da eletrônica devido à complexidade de construção devido aos componentes mecânicos.

Naquela época, apenas um número limitado de músicas podia ser acomodado em uma fita cassete. Replicar uma música para outra cassete também era um pesadelo. Mas agora, graças ao avanço da eletrônica, um MP3 player pode ser feito do zero com seu dinheiro de bolso.

Agora vamos passar para os detalhes técnicos do projeto.

O coração do projeto é o DFPlayer, que é um pequeno módulo de MP3 player que pode acomodar cartão micro SD e pode ser controlado usando um microcontrolador.

Ilustração do DFPlayer:

DFPLAYER
MP3 PLAYER USANDO DF PLAYER – DETALHES COMPLETOS DO DESIGN 13

Possui amplificador embutido que pode acionar alto-falantes de 3 watts em estéreo ou mono. Possui conversor digital para analógico (DAC) de 24 bits, o que é muito bom para um módulo tão baixo e compacto.

Vista inferior do DFPlayer:

VISTA INFERIOR DO DFPLAYER
MP3 PLAYER USANDO DF PLAYER – DETALHES COMPLETOS DO DESIGN 14

Suporta decodificação de hardware MP3 e WMV. Suporta taxa de amostragem de
8KHz,11,025KHz, 12KHz,1 6KHz, 22,05KHz, 24KHz, 32KHz, 44,1KHz, 48KHz.

Ele pode suportar cartão micro SD de até 32 GB. Ele suporta até 100 pastas, cada pasta pode ser atribuída a até 1000 músicas.

Possui 6 níveis diferentes de equalizador; e 30 níveis de controle de ajuste de volume. Pode operar de 3.2V a 5V.

Configuração de pinos do DFPlayer:

CONFIGURAÇÃO DE PINOS DO DFPLAYER
MP3 PLAYER USANDO DF PLAYER – DETALHES COMPLETOS DO DESIGN 15

As especificações acima são baseadas na folha de dados do DFPlayer.

Até agora você já deve estar familiarizado com o DFPlayer e suas especificações. Você pode comprar este módulo em sites de comércio eletrônico ou no mercado local de eletrônicos.

Agora vamos pular para o diagrama esquemático.

Design de MP3 player com botão de pressão:

  MP3 PLAYER USANDO ARDUINO E DFPLAYER

O circuito acima é muito simples; o arduino envia comandos para o módulo DFPlayer para controlar as músicas. O usuário pode inserir sua escolha através de botões.

O resistor pull-up embutido no arduino foi ativado no programa, para que não seja necessário conectar um resistor físico aos botões.

Tente usar alto-falantes de boa qualidade; o DFPlayer pode oferecer um som de qualidade muito boa.

Se você encontrar alguma distorção no som em níveis de volume mais altos, alimente o módulo DFPlayer externamente em 5V DC com conexão de terra comum entre arduino e DFPlayer.

Se você quiser uma configuração de som estéreo, conecte o alto-falante ao SPK1 do DFPlayer e outro alto-falante ao SPK2 e aterre os fios restantes do alto-falante.

Programa para controle de botão de pressão:

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

Agora vamos passar para o projeto baseado em IR remoto.

Esquema para leitor de Mp3 controlado por IR:

IMG 624594441075A


O design acima é simples como o botão de pressão; a única diferença é a remoção dos botões e a inclusão do receptor TSOP 1738 IR. O sinal recebido do controle remoto IR é alimentado no pino A0 do arduino.

Agora, para controlar este MP3 player, você precisa de uma TV sobressalente ou qualquer outro controle remoto baseado em IR que possa estar em sua caixa de lixo. Você tem que decidir quais os botões para controlar as funções, como reproduzir e pausar, etc.

Existem 6 funções:

1) Reproduzir e pausar
2) Próxima música
3) Música anterior
4) Aumento de volume
5) Diminuição do volume
6) Equalizador de som (Normal/Pop/Rock/Jazz/Clássico/Base)

Você precisa escolher os botões do controle remoto e encontrar seus códigos hexadecimais desses botões que serão transmitidos pelo controle remoto. Para encontrar o código hexadecimal, baixe a biblioteca IR se não tiver feito isso.

github.com/z3t0/Arduino-IRremote

Adicione a biblioteca ao software arduino e navegue até Arquivo> Exemplos> IRremote> IRrecvDemo e carregue o código com a configuração de hardware concluída.

Abra o monitor serial e pressione os botões no controle remoto, você verá os códigos hexadecimais, anote-os no botão correspondente em um pedaço de papel.

Você precisa digitar o código hexadecimal no programa abaixo. Depois de inserir os códigos hexadecimais no programa fornecido, faça o upload. Você está pronto para controlar suas músicas pelo controle remoto.

Programa para projeto baseado em IR remoto:

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

NOTA 1: você pode ver um aviso no programa durante a compilação, ignore-o.

OBS 2: Tente colocar todas as suas músicas no cartão SD sem pastas.

Protótipo do autor:

IMG 624594445FD16
MP3 PLAYER USANDO DF PLAYER – DETALHES COMPLETOS DO DESIGN 16

Hashtags: #Mp3 #Player #usando #Player #Detalhes #completos #design
 

FONTE


Nota: Este conteúdo foi traduzido do Inglês para português (auto)
Pode conter erros de tradução

Olá, se tiver algum erro de tradução (AUTO), falta de link para download etc…
Veja na FONTE até ser revisado o conteúdo.
Status (Ok Até agora)


Se tiver algum erro coloque nos comentários

Mas se gostou compartilhe!!!

Relacionados

Relacionados