Introdução
Este módulo pode criar sistemas de som, alarmes, avisos e diversos outros projetos. Por exemplo, soe um alarme personalizado quando um sensor chegar em uma determinada temperatura, toque música quando uma determinada tarefa for concluída ou execute um comando de voz para instruir o usuário sobre o que deve ser feito.
O Módulo MP3 DFPlayer Mini
O DFPlayer Mini é (fisicamente) extremamente parecido com o WTV020-SD, que já vimos aqui. Porém, o DFPlayer Mini tem duas grandes vantagens: a capacidade de conectar alto-falantes de até 3W sem usar um amplificador e a capacidade de, sem conversão, reproduzir arquivos MP3. Na imagem abaixo, temos a Pinagem do módulo, no qual vemos as conexões RX/TX (para comunicação serial), saída de alto-falante (SPK_1 e SPK_2), pinos ADKEY para uso de teclado analógico, e pinos DAC, caso você prefira conectar o DFPlayer Mini ao amplificador. Você pode alimentar o módulo com uma tensão entre 3.2 e 5 VDC.
Pinagem

O DFPlayer Mini pode receber arquivos com sampling rates de 8/11.025/12/16/22,05/24/32/44,1/48 KHz, suporta cartões micro SD nos formatos FAT16 e FAT32 de até 32 GB e pode reconhecer até 100 arquivos, tem saída DAC de 24 bits, 30 níveis de volume e 6 formatos de equalização.
Materiais Necessários para o Projeto Usando o Módulo MP3 DFPlayer Mini
- Uno R3 + Cabo Usb para Arduino
- Módulo MP3-TF-16P V3.0 para Arduino
- Mini Alto-Falante – 0.5w 8Ω
- Jumpers – Macho/Macho – 40 Unidades de 20cm
- Push Button (Chave Táctil) 6x6x6mm
- Protoboard 400 Pontos
- Resistor 330R 1/4W (10 unidades)
- Resistor 10K 1/4W (10 Unidades)
O resistor de 330R no pino RX do módulo cancela um possível ruído no alto-falante. Também recomendamos, dependendo do tamanho do seu projeto, o uso de uma fonte externa, sem a qual o projeto pode ficar com pouco fraco.
Diagrama da Montagem

Formatação do Cartão SD
Agora que já temos a parte física montada, temos que organizar as faixas a serem reproduzidas no cartão SD:
Primeiro, você deve criar pastas com a nomenclatura: <01> <02> <03>….

Já dentro dessas pastas, você deve nomear os arquivos de áudio em: <001> <002> <003>….

Código
// INCLUSÃO DE BIBLIOTECAS
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
// DEFINIÇÕES DE PINOS
#define pinRx 10 //informe aqui qual porta Rx está sendo utilizada.
#define pinTx 11 //informe aqui qual porta Tx está sendo utilizada.
#define button 1 //definimos a saída digital 1 com o nome de Button.
#define button2 2 //definimos a saída digital 2 com o nome de Button2.
// DEFINIÇÕES
#define volumeMP3 30 //definimos o volume, entre 0 e 30.
#define DEBUG
// INSTANCIANDO OBJETOS
SoftwareSerial playerMP3Serial(pinRx, pinTx);
DFRobotDFPlayerMini playerMP3;
// DECLARAÇÃO DE FUNÇÕES
// DECLARAÇÃO DE VARIÁVEIS
void setup() {
pinMode(button, INPUT); //declaramos Button como INPUT.
pinMode(button2, INPUT); //declaramos Button como INPUT.
Serial.begin(9600);
playerMP3Serial.begin(9600);
Serial.println();
Serial.println(F("Iniciando DFPlayer ... (Espere 3~5 segundos)"));
if (!playerMP3.begin(playerMP3Serial)) { // COMUNICAÇÃO REALIZADA VIA SOFTWARE SERIAL
Serial.println(F("Falha:"));
Serial.println(F("1.conexões!"));
Serial.println(F("2.cheque o cartão SD!"));
while(true){
delay(0);
}
}
Serial.println(F("DFPlayer iniciado!"));
playerMP3.volume(volumeMP3);
#ifdef DEBUG
Serial.println("o Setup acabou");
#endif
}
void loop() {
if (digitalRead(button) == HIGH){
playerMP3.playFolder(2, 1);
Serial.println("Tocando pasta 02, musica 001");
delay(1000);
}
if (digitalRead(button2) == HIGH){
playerMP3.playFolder(2, 2);
Serial.println("Tocando pasta 02, musica 001");
delay(1000);
}
}Testado e implementado!

Perito em Computação Forense e Crimes Cibernéticos
Investigação Digital | Laudos Técnicos | Resposta a Incidentes
Bacharel em Sistemas da Informação, Certificado Microsoft Azure IA e MOS. Trabalho como Administrador de Redes, Firewall e Servidores Windows e Linux!
Minhas atividades favoritas são: Caminhar, Fazer Trilhas, Natureza, Insetos e claro ler sobre Tecnologia.

