Como usar o Módulo MP3 DFPlayer Mini
Procurando um módulo MP3 para o seu projeto? O módulo MP3 DFPlayer Mini é compacto, tem baixo consumo de energia e se saiu muito bem nos testes, mostrando ser uma ótima alternativa para você que pretende utilizar música ou efeitos sonoros de forma simples e eficiente.
Com este módulo você pode criar sistemas de som, avisos, alarmes inteligentes e outros projetos na área maker, automação industrial e IoT (Internet das Coisas). Utilize por exemplo para emitir um aviso sonoro quando um sensor atingir determinada temperatura, tocar uma música quando determinada tarefa for finalizada ou executar comandos de voz para guiar o usuário em ações que devem ser executadas.
O Módulo MP3 DFPlayer Mini
O módulo é muito parecido (fisicamente) com o WTV020-SD, que já vimos aqui no Arduino e Cia, mas o DFPlayer Mini tem dois grandes diferenciais, na minha opinião: a possibilidade de conexão de um alto-falante de até 3W sem que você precise utilizar um amplificador, e a capacidade de executar arquivos MP3 sem nenhum tipo de conversão.
Na imagem abaixo temos a pinagem do módulo, onde vemos as conexões RX/TX para comunicação serial e controle utilizando um microcontrolador como Arduino ou outro microcontrolador/placa que tenha interface serial/UART, pinos ADKEY para utilização de um teclado analógico, saída para alto falante (SPK_1 e SPK_2) e também os pinos DAC, se você preferir ligar o seu DFPlayer Mini em um amplificador. Você pode alimentar o módulo com tensões entre 3.2 e 5VDC.
O DFPlayer Mini suporta sampling rates de 8/11.025/12/16/22.05/24/32/44.1/48 KHz, tem saída DAC de 24 bits, suporta cartões micro SD de até 32GB nos formatos FAT16 e FAT32, reconhece até 100 pastas com 255 músicas cada uma, e tem também 30 níveis de volume e 6 formatos de equalização, além de um “modo propaganda”, que você pode usar para pausar a música quando precisar emitir algum aviso, e assim que o aviso terminar a música continua de onde parou.
Usando o módulo no modo standalone
Vimos acima que temos 3 modos de controlar o DFPlayer Mini: teclado analógico, botões e interface serial, sendo que neste post vamos mostrar como utilizar as duas últimas opções.
No circuito abaixo, utilizamos botões tipo push-button para executar as funções de PLAY NEXT/Volume- e PREV/Volume+. Um toque curto no botão da esquerda avança para a próxima música. Mantenha esse botão pressionado para diminuir o volume do som. No botão da direita, um toque curto retorna para a música anterior e mantendo pressionado você aumenta o volume.
Depois de montado, o seu circuito vai ficar mais ou menos assim:
Não esqueça, claro, de conectar a alimentação e o alto-falante. 🙂
DFPlayer Mini com Arduino
Para usar o módulo MP3 DFPlayer Mini com Arduino, utilize as conexões abaixo:
O resistor de 330 ohms no pino RX do módulo eliminou um ruído no alto-falante causado, segundo eu pesquisei, pela alimentação do Arduino. Uma outra opção é você utilizar alimentação externa para o DFPlayer Mini.
Vamos controlar a execução das músicas pela serial do Arduino. Carregue o programa abaixo, que utiliza a biblioteca DFPlayer Mini. Essa biblioteca você pode instalar à partir da própria IDE do Arduino. Vá em Sketch => Incluir Biblioteca => Gerenciar Bibliotecas e procure por DFPlayer Mini, da DFRobot:
Após a instalação da biblioteca, carregue o programa abaixo:
//Programa: Modulo MP3 DFPlayer Mini com Arduino //Autor: Arduino e Cia /*************************************************** DFPlayer - A Mini MP3 Player For Arduino *************************************************** Created 2016-12-07 By [Angelo qiao]([email protected]) GNU Lesser General Public License. See <http://www.gnu.org/licenses/> for details. ****************************************************/ #include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" //Inicia a serial por software nos pinos 10 e 11 SoftwareSerial mySoftwareSerial(10, 11); // RX, TX DFRobotDFPlayerMini myDFPlayer; char buf; int pausa = 0; int equalizacao = 0; void setup() { //Comunicacao serial com o modulo mySoftwareSerial.begin(9600); //Inicializa a serial do Arduino Serial.begin(115200); //Verifica se o modulo esta respondendo e se o //cartao SD foi encontrado Serial.println(); Serial.println(F("DFRobot DFPlayer Mini")); Serial.println(F("Inicializando modulo DFPlayer... (3~5 segundos)")); if (!myDFPlayer.begin(mySoftwareSerial)) { Serial.println(F("Nao inicializado:")); Serial.println(F("1.Cheque as conexoes do DFPlayer Mini")); Serial.println(F("2.Insira um cartao SD")); while (true); } Serial.println(); Serial.println(F("Modulo DFPlayer Mini inicializado!")); //Definicoes iniciais myDFPlayer.setTimeOut(500); //Timeout serial 500ms myDFPlayer.volume(5); //Volume 5 myDFPlayer.EQ(0); //Equalizacao normal //Mostra o menu de comandos Serial.println(); Serial.print("Numero de arquivos no cartao SD: "); Serial.println(myDFPlayer.readFileCounts(DFPLAYER_DEVICE_SD)); menu_opcoes(); } void loop() { //Aguarda a entrada de dados pela serial while (Serial.available() > 0) { buf = Serial.read(); //Reproducao if ((buf >= '1') && (buf <= '9')) { Serial.print("Reproduzindo musica: "); Serial.println(buf); buf = buf - 48; myDFPlayer.play(buf); menu_opcoes(); } //Parada if (buf == 's') { myDFPlayer.stop(); Serial.println("Musica parada!"); menu_opcoes(); } //Pausa/Continua a musica if (buf == 'p') { pausa = !pausa; if (pausa == 0) { Serial.println("Continua musica..."); myDFPlayer.start(); } if (pausa == 1) { Serial.println("Musica pausada..."); myDFPlayer.pause(); } menu_opcoes(); } //Seleciona equalizacao if (buf == 'e') { equalizacao++; if (equalizacao == 6) { equalizacao = 0; } myDFPlayer.EQ(equalizacao); Serial.print("Equalizacao: "); Serial.print(equalizacao); Serial.println(" (0 = Normal, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Classic, 5 = Bass)"); menu_opcoes(); } //Aumenta volume if (buf == '+') { myDFPlayer.volumeUp(); Serial.print("Volume atual:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } //Diminui volume if (buf == '-') { myDFPlayer.volumeDown(); Serial.print("Volume atual:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } } } void menu_opcoes() { Serial.println(); Serial.println(F("Comandos:")); Serial.println(F(" [1-9] Para selecionar o arquivo MP3")); Serial.println(F(" [s] parar reproducao")); Serial.println(F(" [p] pausa/continua a musica")); Serial.println(F(" [e] seleciona equalizacao")); Serial.println(F(" [+ or -] aumenta ou diminui o volume")); Serial.println(); }
Coloque um cartão SD com os arquivos MP3 no slot do módulo e abra o serial monitor. Será exibido o menu de opções para controlar a execução das músicas:
Na parte superior do serial monitor você deve digitar os comandos para controle. Digite números de 1 a 9 para escutar a música correspondente, + ou – para aumentar ou diminuir o som, “s” para parar a reprodução e “p” para pausar/continuar a música. Selecione “e”para escolher entre os 6 modos de equalização disponíveis: Normal, Pop, Rock, Jazz, Classic e Bass.
gostaria de saber se é possível ativar o modulo de mp3 com um sensor giroscopio , apenas quando movimentamos o sensor
Pode me ajudar com isso ?
Boa tarde,
Desejo montar um sistema que acione áudio por sensor de presença.
Somos uma escola de inglês e quero que os alunos sejam recepcionados na porta de entrada da escola com um "Welcome" ou "Good Mornig"
podem me ajudar?
Oi Ricardo,
Posso desenvolver esse projeto para você. Entre em contato utilizando o formulário de contato no lado direito da página, por favor.
Abraço!
Adilson
Olá tenho interesse nesse projeto também montar um sistema que acione áudio por sensor de presença. Como poderia conseguir ?
Bom dia!
Obrigado. Por favor utilize o formulário de contato (Fale com o Administrador do site) no final da página e conversamos.
Abraço!
Adilson
Boa tarde, gostaria de fazer um desse com um alteração no projeto, como sou iniciante no assunto ainda não tenho ideia de como fazer. O que preciso é o seguinte: O MP3 já com os botões principais (PLAY, PAUSA, VOLUME + e -) e além deste botões, gostaria de colocar 12 botões, sendo que cada botão executa um áudio. Percebo que é quase seu projeto, só não sei como fazer a programação no Arduino. Pode me ajudar? grato
Boa noite, o som sai numa intensidade boa ou preciso colocar um amplificador na saída? Não precisa ser muito alto, apenas que dê p ouvir na mesma intensidade de um brinquedo q emite som
Boa tarde,
Nesse módulo o som sai com uma intensidade boa sim. Pode ligar o alto falante direto, como mostrado no circuito.
Abraço!
Adilson
Boa tarde.
Gostaria de saber se consigo usar um botão para reproduzir um determinado áudio com auxilio do Arduíno 12 botoes para 12 áudios distintos
Oi Willian,
Consegue sim. 😉
Abraço!
Adilson
Boa tarde.
Teria como indicar um site ou vídeo demonstrando como fazer isso que o William perguntou?
Olha, eu percebi que o módulo só funciona se vc meio q iniciar ele tocando o pino ADKEY1 ou o 2 em algum contato metálico, eu vou ter que fazer isso toda vez q quiser ligar o módulo?
Oi Marcelo,
O meu não apresentou esse problema. Os pinos ADKey podem ser usados para ligação de um teclado analógico, e no meu caso deixei os pinos em aberto e funcionou normalmente.
Você montou o mesmo circuito mostrado no post?
Abraço!
Adilson
Qual a diferença entre o DF player mini e o módulo cartão SD?
Bom dia,
O módulo DF Player Mini é indicado para reproduzir arquivos de áudio, já o módulo cartão SD você usa para armazenar dados de sensores como por exemplo um datalogger.
Abraço!
Adilson
boa noite, gostaria de saber se consigo usar 20 botoes e cada um tocar um áudio específico diferente?
entre em contato comigo que tenho um exatamente assim zap 11991514759 só tenho este esquema para eletronica e o codigo dfplayer mini para o aplicativo arduino
Olá, realizei toda a montagem e gravei o código deixado por vocês, mas sempre fica aparecendo esta mensagem no serial monitor: 1.Cheque as conexoes do DFPlayer 2.Insira um cartao SD. Testei no modo StandAlone e funcionou normal
Oi Victor,
Veja se você não inverteu os pinos RX e TX na ligação com o Arduino.
Abraço!
Adilson
Olá, queria saber se tem como usar módulo MP3 com um módulo RFID, tipo com a leitura de cada TAG é executado um áudio? E mais uma pergunta, teria como no lugar do alto falante adaptar um plug P2 fêmea para fone de ouvido? Desde já agradeço
Oi Michel,
É possível sim executar um arquivo de áudio para cada tag reconhecida pelo receptor. Quanto ao plug P2, você pode adapta-lo nos pinos SPK1 e SPK2.
Abraço!
Adilson
Que tal Michel Estoy trabajando en algo similar pero en lugar de TAG son espiras magneticas, como resolviste tu problema de reproducir cierto audio dependiendo de cierta etiqueta?, te dejo mi correo vale, [email protected] saludos
Bom dia estou com o mesmo problema nao consigo selecionar um efeito diferente para cada código recebido pelo sensor rfid. Poderia me ajudar?
Olá amigo. Preciso construir um receptor de web radio com um arduino. A recepção será via wi-fi. Voce poderia me indicar que módulos eu teria que usar e onde encontro referencias sobre isto?
Boa tarde,
Precisa ser necessariamente com Arduino? Creio que usando uma Raspberry Pi Zero W ficaria bem mais fácil.
Abraço!
Adilson
Ok, muito obrigado. Vou buscar mais informações sobre o Raspberri Pi zero W
Olá. Eu estou com dificuldades para acionar o mini mp3 com o meu arduino nano. Ocorre que, após todas ligações serem feitas, o auto-falante emite um forte ruido e o arduino fica dado reset. Se eu desconectar a USB do arduino e os pinos do auto-falante e, depois, conectar novamente o arduino e, nesta ordem, conectar os falantes, ele funciona perfeitamente, mas ao ser desligado, tenho que repetir o processo. Alguém pode me ajudar?
Sou iniciante e estava pensando em fazer um projeto em que usasse o módulo mas de forma que o arduíno sorteasse a faixa a ser reproduzida ( no caso estava pensando em utilizar a função Random na programação), será possível a realização deste projeto?
Boa noite,
É possível sim. Pode seguir com o seu raciocínio que está certinho.
Abraço!
Adilson
Olá, a rotina myDFPlayer.readFileCounts(DFPLAYER_DEVICE_SD) retorna o valor "-1", como se não reconhecesse os áudio MP3. O áudio precisa está em alguma configuração específica? Precisa está com algum nome específico?
Oi Eliano,
Esse módulo é bem tranquilo de usar, creio que seja algo no formato do arquivo. Segundo o site do fornecedor, as especificações de áudio são:
– Formatos suportados: MP3, WAV, WMA
– Taxas de amostragem (KHz): 8/11.025/12/16/22.05/24/32/44.1/48
Abraço!
Adilson
Hello, I installed the library and copied your exact code, but I got "'definitions' was not declared in this scope" as an error, what's wrong?
Olá, seria possível usar esse módulo junto com este circuito?
http://www.circuitstoday.com/wp-content/uploads/2009/04/fm-transmitter-circuit.jpg
Se sim, como faço para que ele fique tocando automaticamente as músicas do SD Card?
ola, fiz exatamente como demonstrado porem quando o arduino liga rodando o programa vejo o seguinte no monitor serial:
⸮ ⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮C. I ⸮7-⸮⸮<⸮
poderia dar alguma ajuda? muito obrigado!
Bom dia,
Isso pode ser a velocidade de comunicação setada no Serial Monitor. Veja se está de acordo com o programa.
Abraço!
Adilson
o meu arduino está dando Erro ao abrir porta serial "COM4". (Port busy), oque seria isso
Boa noite,
Alguam coisa está usando a serial. Pode até ser a própria IDE do Arduino, por exemplo quando vc está fazendo o upload de um programa para o microcontrolador e ao mesmo tempo tenta entrar no Serial Monitor.
Abraço!
Adilson
olá, fiz as configurações do jeito que foi mostrado, e assim como no caso do Victor Corsi, aparece essa mensagem:
DFRobot DFPlayer Mini
Inicializando modulo DFPlayer… (3~5 segundos)
Nao inicializado:
1.Cheque as conexoes do DFPlayer Mini
2.Insira um cartao SD
já inverti os pinos 10 e 11
mas nada ainda aparece a mesma mensagem, o que poderia ser?
Oi Eder,
Eu ia pedir pra vc rever as conexões… vc está usando a placa Uno mesmo?
Abraço!
Adilson
Boa noite. Esse modulo trabalha como um reprodutor de MP3? Fiz um projeto utilizando ele com um PIC lendo um pen drive, porém, toda vez que eu aperto play, next ou previous, ele só toca uma musica. Assim que a musica termina, a outra musica não entra em seguida. Teria alguma opção para fazer ele tocar a próxima? Obrigado
Bom dia,
Sim, ele é um reprodutor de MP3. Não posso te responder sobre o uso com PIC, mas se você enviar um pulso para o pino ele se encarrega de reproduzir a próxima "faixa", digamos assim.
Abraço!
Adilson
Bom dia. Gostaria de saber se posso ligar 2 dfplayer mini em um mesmo auto falante. Estou montando um pinball e precisava que umas músicas ficassem tocando sempre e quando a bolinha tocasse no alvo tocaria um som específico mas sem parar a música. Vou usar um amplificador de áudio 35w TDA8932.
Bom dia,
Infelizmente não. Se você fizer isso provavelmente vai queimar um dos módulos, ou até os 2. Sugiro ligações independentes.
Abraço!
Adilson
Pode utilizar um MIXER. Acredito que seja a solução
nos pinos DAC ! baixa impedancia…..
Olá, gostaria de saber se é possível usar esse módulo com o ESP32?
Oi Elias,
Tranquilamente. A comunicação do DFPlayer é pela serial.
Abraço!
Adilson
Vc sabe como fazer um programa que quando eu aperta o B1 toque uma música e quando eu apertar B2 toque outra
O meu funcionou OK. Porem sempre que ligo a 1a vez com o cabo usb no computador o som sai muito baixo. Entao eu desconecto e conecto novamente novamente o cabo de 5v do Arduino e o som passa a sair no volume correto. Alguma dica? Obrigado.
Bom dia,
Já tentou usar o Arduino com fonte externa? Me parece ser um problema de alimentação da placa, que não está gerando "força" suficiente para o projeto funcionar.
Abraço!
Adilson
Boa noite,
Desejo manter um micromotor de 3 rpm em movimento cíclico (sentido horários / anti-horário) e ao mesmo tempo tocar uma música mp3 também de forma cíclica.
É possível fazer tudo isso ao mesmo tempo usando o Arduino Uno e
Módulo MP3 Arduino WTV020-SD
Motor Shield L293D Driver Ponte H para Arduino
?
Desde já agradeço,
Oi Juvenal,
Consegue sim, sem problemas.
Abraço!
Adilson
boa noite,
gostaria de sua ajuda para um projeto.
tenho um pequeno parque de diversões e gostaria de colocar assim que for acionado tocar alguma musica especifica para determinado brinquedo.
consigo fazer com o df player mini e o arduino mega 2560, ou teria q montar um especifico.
me ajude por favor
obrigado
Oi Afonso,
Vai depender do tamanho da sua estrutura e da qualidade do som que vc precisa. Talvez aí nesse projeto vc tenha que incluir um amplificador.
Abraço!
Adilson
boa noite, Adilson
sim, sem problemas agora tem como me ajudar a montar um.
temos um brinquedo chamado formula que imita uns carrinhos eu gostaria de colocar som pra eles, não precisa ser individual não pode ser coletivo mesmo, único som pra todos.
te agradeço desde já
obrigado
Olá!
Consegui utilizar o módulo, porém só emitiu um alto ruído e não as músicas. Usei resistor.
Oi Anna,
Tentou usar outros arquivos de áudio?
Abraço!
Adilson
Utilizando esse módulo, é possível “capturar” o nome do arquivo em reprodução e imprimir na serial?
Oi Denrlei,
Creio que não tenha problemas, mas o nome do arquivo é sequencial. De qualquer forma, é possível sim.
Abraço!
Adilson
Esse código não está carregando no meu Arduino mega Wi-Fi ESP8266.
Alguém sabe um código pra usar esse módulo DF player ?
Tem como fazer algo que eu consiga alterar a velocidade do audio que está tocando ? Exemplo: eu acrescentar um 2 botões (= e – ) para aumentar e reduzir o BPM da musica que estará tocando.
Oi Wécio,
Vou ficar te devendo essa por enquanto. Não achei nenhuma função para alterar o BPM.
Abraço!
Adilson
É possível colocar na mesma placa 2 alto falantes? Para o método standalone, é possível utilizar controle remoto?
Queria também de colocar um led para indicar o funcionamento. Desculpe, são perguntas básicas mas não entendo tanto de eletrônica. As peças para a montagem desse projeto seriam essas abaixo?
Módulo MP3 DFPlayer Mini
Amplificador Stéreo ou Mono?
Alto Falante – Dá pra ligar 2?
Protoboard –
Mini fonte – qual a voltagem e amperagem?
Botões play/pause
mini led (mostrar que está ligado)
dissipador
case
Oi Daniel,
Esse módulo tem a opcão de ser usado com um amplificador, talvez fosse mais interessante do que tentar conectar dois alto-falantes…
Para usar com controle remoto, eu recomendaria conectar em alguma placa microcontrolada tipo o Arduino, e aí nessa placa vc colocaria algum tipo de controle remoto infravermelho (tenho alguns posts no site sobre controle infravermelho). Sobre o led, ele já tem um led que indica quando está ligado. Pela pinagem, não vejo uma saída específica para isso.
E sobre a fonte, o módulo aceita alimentação entre 3.3 e 5VDC. Eu usei uma fonte de 5V/1A nos testes.
Abraço!
Adilson
Adilson,
Pode me chamar no email? Como te disse, tenho noção de eletrônica, sei ler e montar o circuito se estiver pronto…
Podemos trocar uma ideia sobre esse projeto?
Te adianto que diante da possibilidade utilizar controle remoto, penso em montar uma Arduíno + DFPlayer Mini com amplificador + Módulo Controle Remoto. Cabe tudo na case?
Se puder me chamar no email, ficarei muito grato!
Olá, os pinos 10 e 11 de meu arduino nano já estou sendo utilizado para RF, posso troca-los para o RX e TX do nano?
usar DAC ! baixa impedancia com o mixer…..
boa noite, gostaria de saber se consigo usar 27 botoes e cada um tocar um áudio específico diferente?
Responder
Oi Milena!
É possível sim, mas você vai precisar ou de uma placa com mais portas, como o Arduino Mega, ou algum chip multiplexador para usar uma mesma porta do Arduino com mais botões.
Abraço!
Adilson