Arduino Nano - Mini Lecteur Mp3
Ce guide vous montre tout ce dont vous avez besoin pour faire fonctionner le module DIYables Mini Mp3 Player avec un Arduino Nano. À la fin, vous saurez comment :
- Câbler le Mini Mp3 Player à un Arduino Nano sur une breadboard.
- Lire, mettre en pause, reprendre et arrêter des pistes mp3.
- Contrôler le volume avec des boutons physiques ou des commandes série.
- Passer aux pistes suivantes et précédentes.
- Lire des pistes individuelles en boucle, toutes les pistes en boucle ou en mode aléatoire.
- Organiser et lire des pistes depuis des dossiers numérotés.
- Lire le volume actuel, le numéro de piste et l'état de lecture.

Ce Dont Vous Aurez Besoin
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
Découverte du Module Mini Mp3 Player
Le module DIYables Mini Mp3 Player intègre la puce décodeur YX5200-24SS sur une petite carte. Insérez une carte micro SD chargée de fichiers mp3, connectez un haut-parleur, et vous avez un lecteur audio autonome que votre Nano contrôle via une simple connexion série.
Voici ce que le module peut faire :
- Contrôles de lecture : lire, mettre en pause, reprendre, arrêter, suivant, précédent
- Volume : réglable de 0 (silencieux) à 30 (maximum)
- Préréglages EQ : Normal, Pop, Rock, Jazz, Classique, Basse
- Modes de répétition : boucle d'une piste, boucle d'un dossier, boucle de tout, aléatoire
- Dossiers : organisez les pistes dans des dossiers numérotés pour une sélection facile
- Publicités : interrompre la piste en cours, puis continuer là où vous vous étiez arrêté
- Requêtes d'état : demandez au module quelle piste est en cours, le volume actuel, etc.
Toute la communication se fait via UART à 9600 bauds — juste deux fils (TX et RX) plus l'alimentation.
Référence du Brochage
| Pin | What It Does | |
|---|---|---|
| VCC | Power in (3.2V – 5.0V) | |
| GND | Ground connection | |
| RX | Receives serial commands from the Nano (through 1K resistor) | |
| TX | Sends serial data back to the Nano | |
| SPK_1 | Positive speaker terminal (built-in 3W amp) | |
| SPK_2 | Negative speaker terminal | |
| DAC_R | Right audio line out (for external amp) | |
| DAC_L | Left audio line out (for external amp) | |
| BUSY | Goes LOW while a track is playing | |
| IO_1 | Trigger | short press = previous, long press = vol down |
| IO_2 | Trigger | short press = next, long press = vol up |

Comment Câbler
Puisque l'Arduino Nano fonctionne à 5V, vous devez placer une résistance 1K entre la broche TX du Nano et la broche RX du module. Cela abaisse la tension à un niveau sûr pour la logique 3,3V du module.
| Mini Mp3 Player | Arduino Nano | Notes |
|---|---|---|
| VCC | 5V | |
| GND | GND | |
| RX | D11 | Use a 1K resistor in series! |
| TX | D10 | |
| SPK_1 | Speaker + | |
| SPK_2 | Speaker − |
Le Nano et le Mini Mp3 Player tiennent tous les deux confortablement sur une breadboard standard, ce qui en fait une construction très compacte.

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Configuration de la Carte SD
Avant d'insérer la carte dans le module :
- Formatez-la en FAT16 ou FAT32.
- Copiez les fichiers mp3 à la racine avec des numéros à zéros non significatifs :
- Pour la lecture par dossier, créez des dossiers numérotés :
Attention : Le module numérote les pistes selon l'ordre dans lequel elles ont été copiées sur la carte, pas par nom de fichier. Formatez d'abord la carte, puis copiez chaque fichier un par un dans le bon ordre.
- Noms de dossiers : 01 à 99 (deux chiffres, avec zéros non significatifs)
- Noms de fichiers dans les dossiers : 001 à 255 (trois chiffres, avec zéros non significatifs)
- La numérotation des pistes commence à 1, pas 0
Installation de la Bibliothèque
- Branchez le Nano à votre ordinateur via le câble USB Mini-B.
- Ouvrez l'Arduino IDE, choisissez Arduino Nano comme carte et sélectionnez le bon port COM.
- Cliquez sur l'icône Bibliothèques dans la barre latérale gauche de l'Arduino IDE.
- Recherchez "DIYables_MiniMp3" et trouvez la bibliothèque par DIYables.
- Cliquez sur Installer.

Aucune dépendance supplémentaire n'est nécessaire — la bibliothèque est entièrement autonome.
Modèle de Démarrage
Voici la structure de code minimale dont vous avez besoin pour chaque sketch utilisant ce module :
Le delay(1000) après begin() est important — le module a besoin d'environ une seconde pour s'initialiser après la mise sous tension. Définissez toujours le volume explicitement, car la valeur par défaut peut être 0 (silencieux).
Exemple de Code — Lire une Piste
Lit la piste 001.mp3 une fois et s'arrête.
Étapes pour l'Essayer
- Chargez votre carte SD avec au moins un fichier mp3 (001.mp3).
- Insérez la carte SD dans le module et câblez tout comme indiqué ci-dessus.
- Connectez le Nano à votre PC via USB.
- Dans l'Arduino IDE, sélectionnez Arduino Nano et le bon port.
- Collez le code et cliquez sur Téléverser.
La piste 1 se joue via le haut-parleur.
Référence Rapide de Lecture
| Function | Description | Example Code |
|---|---|---|
| play(track) | Play a specific track | mp3.play(1) |
| playNext() | Jump to next track | mp3.playNext() |
| playPrevious() | Jump to previous track | mp3.playPrevious() |
| pause() | Pause current track | mp3.pause() |
| resume() | Continue paused track | mp3.resume() |
| stop() | Stop playback | mp3.stop() |
Exemple de Code — Lire Plusieurs Pistes
Passe par plusieurs pistes une à la fois.
Étapes pour l'Essayer
- Mettez au moins 3 fichiers mp3 sur la carte SD.
- Téléversez le code. Les pistes se jouent en boucle avec un intervalle de 5 secondes.
Exemple de Code — Boutons Volume Haut/Bas
Deux boutons physiques augmentent et diminuent le volume en temps réel.
Étapes pour l'Essayer
- Câblez deux boutons comme décrit dans le code, puis téléversez.
- Appuyez sur les boutons pendant qu'une piste joue. Regardez le Moniteur Série pour le niveau de volume.
Référence Rapide Volume
| Function | Description | Example Code |
|---|---|---|
| setVolume(val) | Set volume (0 = mute, 30 = max) | mp3.setVolume(20) |
| volumeUp() | Bump volume up by 1 | mp3.volumeUp() |
| volumeDown() | Bump volume down by 1 | mp3.volumeDown() |
| getVolume() | Read current volume level | mp3.getVolume() |
Exemple de Code — Boutons Suivant / Précédent
Passez aux pistes avec deux boutons.
Étapes pour l'Essayer
- Câblez des boutons aux broches 2 et 3, téléversez et appuyez pour passer.
Exemple de Code — Bouton Pause / Reprise
Un seul bouton bascule entre pause et reprise.
Étapes pour l'Essayer
- Câblez un bouton à la broche 2. Téléversez et appuyez pour basculer la pause/reprise.
Exemple de Code — Lire une Piste en Boucle Indéfiniment
Répète une seule piste en boucle sans fin.
Étapes pour l'Essayer
- Téléversez le code. La piste 1 se répète indéfiniment.
Référence Rapide Répétition & Aléatoire
| Function | Description | Example Code |
|---|---|---|
| loopTrack(track) | Repeat one track nonstop | mp3.loopTrack(1) |
| loopFolder(folder) | Repeat all tracks in a folder | mp3.loopFolder(1) |
| loopAll() | Repeat every track on the card | mp3.loopAll() |
| stopLoop() | Cancel the current loop | mp3.stopLoop() |
| shuffle() | Random playback of all tracks | mp3.shuffle() |
Exemple de Code — Lecture par Dossier
Sélectionnez et lisez des pistes depuis des dossiers numérotés spécifiques sur la carte SD.
Étapes pour l'Essayer
- Créez des dossiers (01, 02) sur la carte SD avec des fichiers mp3 numérotés à l'intérieur.
- Téléversez le code. Il lit depuis le dossier 01, puis le dossier 02.
Référence Rapide Lecture par Dossier
| Function | Description | Example Code |
|---|---|---|
| playFolder(f, t) | Play track t from folder f (99 folders max, 255 tracks) | mp3.playFolder(1, 1) |
| playLargeFolder(f, t) | Play from folder (15 folders max, 3000 tracks) | mp3.playLargeFolder(1, 500) |
| playFromMP3Folder(t) | Play from the special /mp3 folder | mp3.playFromMP3Folder(1) |
Exemple de Code — Télécommande via Moniteur Série
Contrôlez la lecture entièrement depuis le Moniteur Série — idéal pour les tests.
Étapes pour l'Essayer
- Téléversez le code, ouvrez le Moniteur Série à 9600 bauds, et tapez des commandes.
Référence des Commandes
| Type | What Happens |
|---|---|
| 1–9 | Plays that track number |
| + | Volume up |
| − | Volume down |
| p | Pause |
| r | Resume |
| s | Stop |
| n | Next track |
| b | Back (previous track) |
| ? | Show status info |
Préréglages EQ
| Constant | Value | Style |
|---|---|---|
| DIYables_MiniMp3::EQ_NORMAL | 0 | Flat |
| DIYables_MiniMp3::EQ_POP | 1 | Pop |
| DIYables_MiniMp3::EQ_ROCK | 2 | Rock |
| DIYables_MiniMp3::EQ_JAZZ | 3 | Jazz |
| DIYables_MiniMp3::EQ_CLASSIC | 4 | Classical |
| DIYables_MiniMp3::EQ_BASS | 5 | Bass heavy |
Lecture de l'État du Module
Ces appels vous permettent de vérifier ce que fait le module. Chacun se bloque brièvement (jusqu'à 100 ms) en attendant la réponse. Renvoie −1 si le module ne répond pas.
| Function | Returns | What You Get |
|---|---|---|
| isPlaying() | bool | true if audio is currently playing |
| getVolume() | int16_t | Volume level (0–30) |
| getEQ() | int16_t | Active equalizer preset (0–5) |
| getTrackCount() | int16_t | Total number of tracks on the card |
| getCurrentTrack() | int16_t | Track number that's playing right now |
| getFolderCount() | int16_t | How many folders are on the card |
| getTrackCountInFolder(f) | int16_t | How many tracks are in folder f |