Arduino Uno R4 - Mini Mp3 Player
Neste tutorial, você vai aprender a usar o módulo DIYables Mini Mp3 Player com o Arduino Uno R4 (nas versões WiFi e Minima). Vamos ver:
- Ligação do Mini Mp3 Player ao Arduino Uno R4.
- Reprodução de faixas mp3 armazenadas em um cartão SD.
- Ajuste do volume, incluindo aumentar e diminuir o volume.
- Pausar, retomar e parar a reprodução.
- Navegação entre as faixas (próxima e anterior).
- Repetição de uma única faixa, repetição de todas as faixas e modo aleatório.
- Reprodução de faixas específicas de pastas numeradas.
- Consulta do estado da reprodução.

Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables STEM V4B IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Módulo Mini Mp3 Player
O DIYables Mini Mp3 Player é um módulo decodificador de mp3 compacto, construído em torno do chip YX5200-24SS. Ele toca arquivos mp3 diretamente de um cartão micro SD e pode acionar um alto-falante (até 3W) pelo amplificador integrado, ou enviar áudio em nível de linha pelos pinos DAC para uso com um amplificador externo.
A comunicação acontece por UART a 9600 baud, o que facilita o controle a partir de qualquer placa Arduino. Os principais recursos incluem:
- Tocar, pausar, retomar e parar
- Ajuste de volume de 0 a 30
- Seis predefinições de equalizador: Normal, Pop, Rock, Jazz, Classic, Bass
- Repetição de faixa, repetição de pasta, modo aleatório completo
- Reprodução por pastas com diretórios numerados
- Interrupção da reprodução com anúncios
- Consulta da faixa atual, do volume, do estado de reprodução e mais
Pinagem do Módulo
| Pino | Descrição |
|---|---|
| VCC | Entrada de alimentação (3,2V a 5,0V) |
| GND | Terra |
| RX | Entrada de dados seriais — conecte ao TX do Arduino por meio de um resistor de 1K |
| TX | Saída de dados seriais — conecte ao RX do Arduino |
| SPK_1 | Terminal positivo do alto-falante (acionamento direto, 3W no máximo) |
| SPK_2 | Terminal negativo do alto-falante (acionamento direto, 3W no máximo) |
| DAC_R | Saída de linha do canal direito (para amplificador externo) |
| DAC_L | Saída de linha do canal esquerdo (para amplificador externo) |
| BUSY | LOW durante a reprodução, HIGH quando está parado |
| IO_1 | Toque curto = faixa anterior, toque longo = diminuir volume |
| IO_2 | Toque curto = próxima faixa, toque longo = aumentar volume |

Diagrama de Ligação
O Arduino Uno R4 opera com lógica de 5V, por isso é necessário um resistor de 1K na linha RX do módulo para proteger a entrada de 3,3V dele.
| Pino do Mini Mp3 Player | Pino do Arduino Uno R4 | Observação |
|---|---|---|
| VCC | 5V | |
| GND | GND | |
| RX | Pino 11 | Por um resistor de 1K (necessário para placas de 5V) |
| TX | Pino 10 | |
| SPK_1 | Alto-falante + | |
| SPK_2 | Alto-falante − |

This image is created using Fritzing. Click to enlarge image
Veja A melhor forma de alimentar o Arduino Uno R4 e outros componentes.
Dica: O Uno R4 tem uma porta serial de hardware (Serial1 nos pinos 0 e 1), mas como os pinos 0/1 são compartilhados com o USB, usar SoftwareSerial nos pinos 10/11 é a abordagem mais segura.
Preparando o Cartão SD
- Formate o cartão micro SD como FAT16 ou FAT32.
- Copie seus arquivos mp3 para o diretório raiz usando nomes preenchidos com zeros à esquerda:
- Para a reprodução por pastas, crie pastas numeradas com arquivos numerados:
Pontos importantes:
- A numeração das faixas começa em 1, não em 0.
- O módulo define a ordem das faixas pela sequência em que os arquivos foram copiados, e não pelo nome do arquivo. Sempre formate o cartão primeiro e depois copie os arquivos um a um, na ordem desejada.
- Nomes das pastas: 2 dígitos, com zero à esquerda (01 a 99).
- Nomes dos arquivos dentro das pastas: 3 dígitos, com zeros à esquerda (001 a 255).
Instalando a Biblioteca
- Conecte o Arduino Uno R4 ao seu computador usando um cabo USB-C.
- Abra o Arduino IDE e selecione a placa e a porta corretas.
- Clique no ícone Libraries na barra lateral esquerda.
- Digite "DIYables_MiniMp3" na caixa de pesquisa e localize a biblioteca da DIYables.
- Clique em Install para adicionar a versão mais recente da biblioteca.

Esta biblioteca não tem dependências externas.
Código Arduino Uno R4 - Tocar uma Única Faixa
O sketch abaixo toca uma faixa mp3 do cartão SD.
Como Executar
- Prepare um cartão SD com arquivos mp3 (001.mp3, 002.mp3, etc.) e insira-o no módulo.
- Ligue o Mini Mp3 Player ao Uno R4 de acordo com o diagrama de ligação acima.
- Conecte o Uno R4 ao seu computador com um cabo USB-C.
- Abra o Arduino IDE, escolha Arduino Uno R4 WiFi (ou Minima) como placa e selecione a porta correta.
- Cole o código acima no editor do IDE.
- Pressione Upload.
Você deve ouvir a faixa 001.mp3 pelo alto-falante.
Funções de Reprodução em Resumo
| Função | O Que Faz | Uso |
|---|---|---|
| play(trackNum) | Inicia uma faixa específica | mp3.play(1) |
| playNext() | Pula para a próxima faixa | mp3.playNext() |
| playPrevious() | Volta para a faixa anterior | mp3.playPrevious() |
| pause() | Pausa a faixa atual | mp3.pause() |
| resume() | Retoma uma faixa pausada | mp3.resume() |
| stop() | Para a reprodução por completo | mp3.stop() |
Código Arduino Uno R4 - Tocar Várias Faixas em Sequência
Este sketch toca várias faixas uma após a outra, com um intervalo configurável entre elas.
Como Executar
- Verifique se o cartão SD contém pelo menos 3 faixas (001.mp3, 002.mp3, 003.mp3).
- Faça o upload do código para o Uno R4.
As faixas de 1 a 3 vão tocar em ciclo repetido, com um intervalo de 5 segundos.
Código Arduino Uno R4 - Controle de Volume com Botões
Ligue dois botões de pressão para aumentar e diminuir o volume em tempo real.
Como Executar
- Conecte dois botões como descrito nos comentários do código e faça o upload.
- Pressione os botões enquanto a música toca para aumentar ou diminuir o volume. O Serial Monitor mostra o nível atual.
Funções de Volume
| Função | O Que Faz | Uso |
|---|---|---|
| setVolume(level) | Define o volume diretamente (0–30) | mp3.setVolume(25) |
| volumeUp() | Aumenta o volume em 1 | mp3.volumeUp() |
| volumeDown() | Diminui o volume em 1 | mp3.volumeDown() |
| getVolume() | Retorna o volume atual | mp3.getVolume() |
Código Arduino Uno R4 - Botões de Próxima e Anterior
Dois botões permitem avançar ou voltar na sua lista de reprodução.
Como Executar
- Ligue os botões NEXT e PREV aos pinos 2 e 3.
- Faça o upload do sketch e pressione os botões para navegar entre as faixas.
Código Arduino Uno R4 - Alternar entre Pausar e Retomar
Um único botão alterna a reprodução entre pausada e tocando.
Como Executar
- Ligue um botão ao pino 2 e faça o upload.
- Pressione o botão uma vez para pausar e pressione de novo para retomar.
Código Arduino Uno R4 - Repetir uma Faixa
Este sketch repete uma única faixa sem parar.
Como Executar
- Faça o upload do código. A faixa 001.mp3 vai repetir continuamente.
Funções de Repetição e Modo Aleatório
| Função | O Que Faz | Uso |
|---|---|---|
| loopTrack(trackNum) | Repete uma faixa para sempre | mp3.loopTrack(1) |
| loopFolder(folder) | Repete todas as faixas de uma pasta | mp3.loopFolder(1) |
| loopAll() | Repete todas as faixas do cartão | mp3.loopAll() |
| stopLoop() | Cancela qualquer repetição ativa | mp3.stopLoop() |
| shuffle() | Toca todas as faixas em ordem aleatória | mp3.shuffle() |
Código Arduino Uno R4 - Tocar de uma Pasta
Toque faixas de pastas numeradas específicas do cartão SD.
Como Executar
- Prepare o cartão SD com pastas (01, 02) contendo arquivos numerados (001.mp3, 002.mp3).
- Faça o upload do sketch. Ele toca as faixas da pasta 01 e depois da pasta 02.
Funções de Reprodução por Pasta
| Função | O Que Faz | Uso |
|---|---|---|
| playFolder(folder, track) | Toca uma faixa de uma pasta (até 99 pastas, 255 faixas) | mp3.playFolder(1, 1) |
| playLargeFolder(folder, track) | Toca de uma pasta (até 15 pastas, 3000 faixas) | mp3.playLargeFolder(1, 1500) |
| playFromMP3Folder(trackNum) | Toca da pasta /mp3 | mp3.playFromMP3Folder(1) |
Código Arduino Uno R4 - Controle pelo Serial Monitor
Digite comandos de um único caractere no Serial Monitor para controlar todos os aspectos da reprodução. Não é necessário hardware extra.
Como Executar
- Faça o upload do código e depois abra o Serial Monitor a 9600 baud.
- Digite qualquer comando da tabela abaixo:
| Tecla | Ação |
|---|---|
| 1–9 | Tocar a faixa de número 1 a 9 |
| + | Aumentar o volume |
| − | Diminuir o volume |
| p | Pausar a reprodução |
| r | Retomar a reprodução |
| s | Parar a reprodução |
| n | Pular para a próxima faixa |
| b | Voltar para a faixa anterior |
| ? | Mostrar o estado atual |
Modos do Equalizador
Seis predefinições de EQ estão disponíveis:
| Constante | ID | Perfil de Som |
|---|---|---|
| DIYables_MiniMp3::EQ_NORMAL | 0 | Plano / neutro |
| DIYables_MiniMp3::EQ_POP | 1 | Pop |
| DIYables_MiniMp3::EQ_ROCK | 2 | Rock |
| DIYables_MiniMp3::EQ_JAZZ | 3 | Jazz |
| DIYables_MiniMp3::EQ_CLASSIC | 4 | Clássico |
| DIYables_MiniMp3::EQ_BASS | 5 | Ênfase nos graves |
Consultando o Estado da Reprodução
As funções a seguir permitem ler o estado do módulo durante a execução. Cada chamada bloqueia por até 100 ms enquanto espera uma resposta. Um valor de retorno de −1 indica erro ou tempo esgotado.
| Função | Tipo de Retorno | Descrição |
|---|---|---|
| isPlaying() | bool | true enquanto uma faixa está sendo tocada |
| getVolume() | int16_t | Nível de volume atual (0–30) |
| getEQ() | int16_t | Predefinição de EQ ativa (0–5) |
| getTrackCount() | int16_t | Número de faixas no cartão SD |
| getCurrentTrack() | int16_t | Número da faixa que está tocando |
| getFolderCount() | int16_t | Número de pastas no cartão SD |
| getTrackCountInFolder(folder) | int16_t | Faixas dentro de uma pasta específica |