Arduino Nano - Mini Mp3 Player
Este guia mostra tudo o que você precisa para fazer o módulo DIYables Mini Mp3 Player funcionar com um Arduino Nano. Ao final, você saberá como:
- Ligar o Mini Mp3 Player a um Arduino Nano em uma protoboard.
- Tocar, pausar, retomar e parar faixas mp3.
- Controlar o volume com botões físicos ou comandos seriais.
- Avançar e voltar entre as faixas.
- Repetir faixas individuais, repetir todas as faixas ou tocar em ordem aleatória.
- Organizar e tocar faixas de pastas numeradas.
- Ler de volta o volume atual, o número da faixa e o estado de reprodução.

O Que Você Vai Precisar
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Conhecendo o Módulo Mini Mp3 Player
O módulo DIYables Mini Mp3 Player reúne o chip decodificador YX5200-24SS em uma placa minúscula. Encaixe um cartão micro SD com arquivos mp3, conecte um alto-falante e pronto: você tem um player de áudio independente que o seu Nano controla por uma conexão serial simples.
Veja o que o módulo pode fazer:
- Controles de reprodução: tocar, pausar, retomar, parar, próxima, anterior
- Volume: ajustável de 0 (mudo) a 30 (máximo)
- Presets de EQ: Normal, Pop, Rock, Jazz, Classic, Bass
- Modos de repetição: repetir uma faixa, repetir uma pasta, repetir tudo, aleatório
- Pastas: organize as faixas em pastas numeradas para facilitar a seleção
- Anúncios: interrompem a faixa atual e depois continuam de onde você parou
- Consultas de status: pergunte ao módulo qual faixa está tocando, o volume atual, etc.
Toda a comunicação acontece por UART a 9600 baud — apenas dois fios (TX e RX) mais a alimentação.
Referência de Pinagem
| Pino | O Que Faz | |
|---|---|---|
| VCC | Entrada de alimentação (3,2V – 5,0V) | |
| GND | Conexão de terra | |
| RX | Recebe comandos seriais do Nano (através de resistor de 1K) | |
| TX | Envia dados seriais de volta ao Nano | |
| SPK_1 | Terminal positivo do alto-falante (amplificador de 3W embutido) | |
| SPK_2 | Terminal negativo do alto-falante | |
| DAC_R | Saída de linha de áudio direita (para amplificador externo) | |
| DAC_L | Saída de linha de áudio esquerda (para amplificador externo) | |
| BUSY | Fica em LOW enquanto uma faixa está tocando | |
| IO_1 | Gatilho | toque curto = anterior, toque longo = diminuir volume |
| IO_2 | Gatilho | toque curto = próxima, toque longo = aumentar volume |

Como Ligar
Como o Arduino Nano funciona a 5V, você deve colocar um resistor de 1K entre o pino TX do Nano e o pino RX do módulo. Isso reduz a tensão para um nível seguro para a lógica de 3,3V do módulo.
| Mini Mp3 Player | Arduino Nano | Observações |
|---|---|---|
| VCC | 5V | |
| GND | GND | |
| RX | D11 | Use um resistor de 1K em série! |
| TX | D10 | |
| SPK_1 | Alto-falante + | |
| SPK_2 | Alto-falante − |
Tanto o Nano quanto o Mini Mp3 Player cabem confortavelmente em uma protoboard padrão, o que torna esta montagem muito compacta.

This image is created using Fritzing. Click to enlarge image
Veja A melhor forma de alimentar o Arduino Nano e outros componentes.
Preparando o Cartão SD
Antes de inserir o cartão no módulo:
- Formate como FAT16 ou FAT32.
- Copie os arquivos mp3 para a raiz com números preenchidos com zeros:
- Para reprodução por pasta, crie pastas numeradas:
Atenção: O módulo numera as faixas pela ordem em que elas foram copiadas para o cartão, e não pelo nome do arquivo. Formate o cartão primeiro e depois copie cada arquivo, um de cada vez, na ordem correta.
- Nomes de pastas: 01 a 99 (dois dígitos, preenchidos com zeros)
- Nomes de arquivos dentro das pastas: 001 a 255 (três dígitos, preenchidos com zeros)
- A numeração das faixas começa em 1, não em 0
Instalação da Biblioteca
- Conecte o Nano ao seu computador pelo cabo USB Mini-B.
- Abra o Arduino IDE, escolha Arduino Nano como placa e selecione a porta COM correta.
- Clique no ícone Libraries na barra lateral esquerda do Arduino IDE.
- Pesquise por "DIYables_MiniMp3" e encontre a biblioteca da DIYables.
- Clique em Install.

Nenhuma dependência adicional é necessária — a biblioteca é totalmente independente.
Modelo Inicial
Esta é a estrutura mínima de código de que você precisa em todo sketch que usa este módulo:
O delay(1000) depois de begin() é importante — o módulo precisa de cerca de um segundo para se inicializar após ser ligado. Sempre defina o volume explicitamente, porque o padrão pode ser 0 (mudo).
Exemplo de Código — Tocar Uma Faixa
Toca a faixa 001.mp3 uma vez e para.
Passos para Testar
- Carregue seu cartão SD com pelo menos um arquivo mp3 (001.mp3).
- Insira o cartão SD no módulo e ligue tudo como mostrado acima.
- Conecte o Nano ao seu PC por USB.
- No Arduino IDE, selecione Arduino Nano e a porta correta.
- Cole o código e clique em Upload.
A faixa 1 toca pelo alto-falante.
Referência Rápida de Reprodução
| Função | Descrição | Código de Exemplo |
|---|---|---|
| play(track) | Toca uma faixa específica | mp3.play(1) |
| playNext() | Pula para a próxima faixa | mp3.playNext() |
| playPrevious() | Pula para a faixa anterior | mp3.playPrevious() |
| pause() | Pausa a faixa atual | mp3.pause() |
| resume() | Continua a faixa pausada | mp3.resume() |
| stop() | Para a reprodução | mp3.stop() |
Exemplo de Código — Tocar Várias Faixas
Percorre várias faixas, uma de cada vez.
Passos para Testar
- Coloque pelo menos 3 arquivos mp3 no cartão SD.
- Faça o upload do código. As faixas tocam em ciclo com um intervalo de 5 segundos.
Exemplo de Código — Botões de Volume Mais/Menos
Dois botões físicos aumentam e diminuem o volume em tempo real.
Passos para Testar
- Ligue dois botões como descrito no código e depois faça o upload.
- Pressione os botões enquanto uma faixa toca. Observe o nível de volume no Serial Monitor.
Referência Rápida de Volume
| Função | Descrição | Código de Exemplo |
|---|---|---|
| setVolume(val) | Define o volume (0 = mudo, 30 = máx.) | mp3.setVolume(20) |
| volumeUp() | Aumenta o volume em 1 | mp3.volumeUp() |
| volumeDown() | Diminui o volume em 1 | mp3.volumeDown() |
| getVolume() | Lê o nível de volume atual | mp3.getVolume() |
Exemplo de Código — Botões Próxima / Anterior
Pule faixas com dois botões.
Passos para Testar
- Ligue os botões aos pinos 2 e 3, faça o upload e pressione para pular.
Exemplo de Código — Botão Pausar / Retomar
Um botão alterna entre pausar e retomar.
Passos para Testar
- Ligue um botão ao pino 2. Faça o upload e pressione para alternar entre pausar/retomar.
Exemplo de Código — Repetir uma Faixa Para Sempre
Repete uma única faixa em um loop sem fim.
Passos para Testar
- Faça o upload do código. A faixa 1 se repete indefinidamente.
Referência Rápida de Repetição e Aleatório
| Função | Descrição | Código de Exemplo |
|---|---|---|
| loopTrack(track) | Repete uma faixa sem parar | 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 o loop atual | mp3.stopLoop() |
| shuffle() | Reprodução aleatória de todas as faixas | mp3.shuffle() |
Exemplo de Código — Reprodução por Pasta
Selecione e toque faixas de pastas numeradas específicas no cartão SD.
Passos para Testar
- Crie pastas (01, 02) no cartão SD com arquivos mp3 numerados dentro delas.
- Faça o upload do código. Ele toca a pasta 01 e depois a pasta 02.
Referência Rápida de Reprodução por Pasta
| Função | Descrição | Código de Exemplo |
|---|---|---|
| playFolder(f, t) | Toca a faixa t da pasta f (máx. 99 pastas, 255 faixas) | mp3.playFolder(1, 1) |
| playLargeFolder(f, t) | Toca de uma pasta (máx. 15 pastas, 3000 faixas) | mp3.playLargeFolder(1, 500) |
| playFromMP3Folder(t) | Toca da pasta especial /mp3 | mp3.playFromMP3Folder(1) |
Exemplo de Código — Controle Remoto pelo Serial Monitor
Controle a reprodução inteiramente pelo Serial Monitor — ótimo para testes.
Passos para Testar
- Faça o upload do código, abra o Serial Monitor a 9600 baud e digite os comandos.
Referência de Comandos
| Digite | O Que Acontece |
|---|---|
| 1–9 | Toca aquele número de faixa |
| + | Aumenta o volume |
| − | Diminui o volume |
| p | Pausa |
| r | Retoma |
| s | Para |
| n | Próxima faixa |
| b | Voltar (faixa anterior) |
| ? | Mostra informações de status |
Presets de EQ
| Constante | Valor | Estilo |
|---|---|---|
| DIYables_MiniMp3::EQ_NORMAL | 0 | Plano |
| 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 | Graves intensos |
Lendo o Status do Módulo
Estas chamadas permitem verificar o que o módulo está fazendo. Cada uma bloqueia brevemente (até 100 ms) enquanto espera pela resposta. Retorna −1 se o módulo não responder.
| Função | Retorna | O Que Você Obtém |
|---|---|---|
| isPlaying() | bool | true se o áudio estiver tocando no momento |
| getVolume() | int16_t | Nível de volume (0–30) |
| getEQ() | int16_t | Preset de equalizador ativo (0–5) |
| getTrackCount() | int16_t | Número total de faixas no cartão |
| getCurrentTrack() | int16_t | Número da faixa que está tocando agora |
| getFolderCount() | int16_t | Quantas pastas há no cartão |
| getTrackCountInFolder(f) | int16_t | Quantas faixas há na pasta f |