Arduino Mega - Mini lecteur MP3

L'Arduino Mega 2560 dispose de quatre ports série matériels, ce qui en fait un excellent choix pour travailler avec des périphériques UART comme le module DIYables Mini Mp3 Player. Ce tutoriel montre comment connecter et programmer le Mini Mp3 Player avec le Mega, en profitant de son port Serial1 dédié pour ne jamais avoir à utiliser SoftwareSerial.

Ce que couvre ce tutoriel :

Arduino Mega Mini lecteur MP3

Liste des pièces

1×Arduino MEGA
1×Alternativement: DIYables MEGA Development Board
1×Câble USB 2.0 type A/B (pour PC USB-A)
1×Câble USB 2.0 type C/B (pour PC USB-C)
1×DIYables Mini Mp3 Player module
1×Carte Micro SD
1×Speaker
1×Plaque d'essai
1×Fils de connexion
1×Recommandé: Screw Terminal Block Shield for Arduino Uno/Mega
1×Recommandé: Sensors/Servo Expansion Shield for Arduino Mega
1×Recommandé: Breadboard Shield for Arduino Mega
1×Recommandé: Enclosure for Arduino Mega

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du module Mini Mp3 Player

Le DIYables Mini Mp3 Player utilise le chip décodeur YX5200-24SS pour lire et jouer des fichiers mp3 depuis une carte micro SD. Il a un amplificateur intégré qui peut piloter directement un petit haut-parleur (jusqu'à 3W), plus des broches de sortie DAC si vous souhaitez router l'audio vers un ampli externe.

Le Mega communique avec le module via UART à 9600 bauds. Les fonctionnalités disponibles sont :

  • Contrôles de transport complets : lecture, pause, reprise, arrêt, suivant, précédent
  • Plage de volume : 0 (muet) à 30 (max)
  • Préréglages EQ : Normal, Pop, Rock, Jazz, Classique, Basse
  • Options de répétition : répéter une piste, répéter un dossier, répéter tout, lecture aléatoire
  • Lecture de dossiers : organiser les pistes dans des répertoires numérotés
  • Mode annonce : interrompre puis reprendre la piste précédente
  • Requêtes de statut : quelle piste joue, volume actuel, nombre total de pistes

Référence des broches

Pin Role
VCC Alimentation (3.2V–5.0V)
GND Masse
RX Réception série — connectez au TX1 du Mega via une résistance de 1K
TX Transmission série — connectez au RX1 du Mega
SPK_1 Haut-parleur positif (amplificateur embarqué, 3W max)
SPK_2 Haut-parleur négatif
DAC_R Sortie audio canal droit (niveau ligne)
DAC_L Sortie audio canal gauche (niveau ligne)
BUSY BAS pendant la lecture audio, HAUT à l'arrêt
IO_1 Déclencheur physique court=précédent, long=vol bas
IO_2 Déclencheur physique court=suivant, long=vol haut
Brochage du Mini Mp3 Player

Câblage

Le Mega est une carte 5V, donc une résistance série de 1K sur la ligne RX du module est requise pour protéger son entrée 3,3V.

Nous utilisons Serial1 (TX1 = broche 18, RX1 = broche 19) pour le module mp3, laissant le Serial principal (broches 0 et 1) libre pour le débogage via le Moniteur Série.

Mini Mp3 Player Arduino Mega Notes
VCC 5V
GND GND
RX Pin 18 (TX1) Via une résistance de 1K
TX Pin 19 (RX1) Connexion directe
SPK_1 Speaker +
SPK_2 Speaker −

Vous pouvez aussi utiliser Serial2 (broches 16/17) ou Serial3 (broches 14/15) si Serial1 est occupé.

Schéma de câblage Arduino Mega Mini Mp3 Player

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Préparation de la carte SD

Formatez la carte en FAT16 ou FAT32, puis ajoutez des fichiers mp3 avec des numéros à zéros non significatifs :

/001.mp3 /002.mp3 /003.mp3

Pour la lecture par dossiers, créez des répertoires numérotés :

/01/001.mp3 /01/002.mp3 /02/001.mp3

Détails importants :

  • La numérotation commence à 1.
  • Le module utilise l'ordre de copie pour attribuer les numéros de piste, pas le nom de fichier. Copiez les fichiers un à la fois après le formatage.
  • Noms de dossiers : 2 chiffres (01–99). Noms de fichiers : 3 chiffres (001–255).

Installation de la bibliothèque

  • Connectez le Mega à votre PC avec le câble USB.
  • Dans l'Arduino IDE, sélectionnez Arduino Mega ou Mega 2560 et le bon port.
  • Ouvrez le panneau Bibliothèques.
  • Recherchez « DIYables_MiniMp3 » et installez-la.
Bibliothèque Arduino Mega Mini Mp3 Player

Aucune dépendance requise.

Structure de code de base (port série matériel)

Le Mega dispose de nombreux ports série matériels, donc oubliez totalement SoftwareSerial :

#include <DIYables_MiniMp3.h> DIYables_MiniMp3 mp3; void setup() { Serial.begin(9600); // For Serial Monitor Serial1.begin(9600); // For Mini Mp3 Player mp3.begin(Serial1); delay(1000); // Module boot time mp3.setVolume(25); } void loop() { // Your logic goes here }

Code Mega — Jouer une piste

/* * DIYables Mini Mp3 Player - Play One Track * * Product: DIYables Mini Mp3 Player Module * https://diyables.io/products/mini-mp3-player-module * * Plays track 001 once, then stops. * * Wiring (Arduino Mega): * Mini Mp3 RX -> Arduino Mega Pin 11 (via 1K resistor) * Mini Mp3 TX -> Arduino Mega Pin 10 * Mini Mp3 VCC -> 5V * Mini Mp3 GND -> GND * Speaker connected to SPK_1 and SPK_2 pins * * SD Card: Put mp3 files in root, named 001.mp3, 002.mp3, etc. */ #include <DIYables_MiniMp3.h> #include <SoftwareSerial.h> SoftwareSerial mp3Serial(10, 11); // RX, TX DIYables_MiniMp3 mp3; void setup() { Serial.begin(9600); mp3Serial.begin(9600); mp3.begin(mp3Serial); delay(1000); // Wait for the module to initialize mp3.setVolume(25); // Set volume (0 to 30) Serial.println("Playing track 1..."); mp3.play(1); // Play track 001.mp3 } void loop() { // Nothing to do here }

Pour exécuter

  • Configurez la carte SD, câblez le module à Serial1 et téléversez. La piste 001.mp3 joue via le haut-parleur.

Fonctions de lecture

Function Action Code
play(n) Jouer la piste n mp3.play(1)
playNext() Piste suivante mp3.playNext()
playPrevious() Piste précédente mp3.playPrevious()
pause() Pause mp3.pause()
resume() Reprendre mp3.resume()
stop() Arrêter mp3.stop()

Code Mega — Plusieurs pistes en séquence

/* * DIYables Mini Mp3 Player - Play Multiple Tracks * * Product: DIYables Mini Mp3 Player Module * https://diyables.io/products/mini-mp3-player-module * * Plays tracks one after another with a delay between them. * * Wiring (Arduino Mega): * Mini Mp3 RX -> Arduino Mega Pin 11 (via 1K resistor) * Mini Mp3 TX -> Arduino Mega Pin 10 * Mini Mp3 VCC -> 5V * Mini Mp3 GND -> GND * Speaker connected to SPK_1 and SPK_2 pins * * SD Card: Put mp3 files in root, named 001.mp3, 002.mp3, 003.mp3 */ #include <DIYables_MiniMp3.h> #include <SoftwareSerial.h> SoftwareSerial mp3Serial(10, 11); // RX, TX DIYables_MiniMp3 mp3; int currentTrack = 1; int totalTracks = 3; // Change this to match your SD card unsigned long lastTrackTime = 0; unsigned long trackDuration = 5000; // Wait 5 seconds between tracks (adjust as needed) void setup() { Serial.begin(9600); mp3Serial.begin(9600); mp3.begin(mp3Serial); delay(1000); mp3.setVolume(20); Serial.println("Playing track 1..."); mp3.play(currentTrack); lastTrackTime = millis(); } void loop() { // After trackDuration, play the next track if (millis() - lastTrackTime >= trackDuration) { currentTrack++; if (currentTrack > totalTracks) currentTrack = 1; // Loop back to first track Serial.print("Playing track "); Serial.println(currentTrack); mp3.play(currentTrack); lastTrackTime = millis(); } }

Code Mega — Boutons de volume

/* * DIYables Mini Mp3 Player - Volume Control * * Product: DIYables Mini Mp3 Player Module * https://diyables.io/products/mini-mp3-player-module * * Use two buttons to increase/decrease the volume. * Press button on pin 2 to volume up, pin 3 to volume down. * * Wiring (Arduino Mega): * Mini Mp3 RX -> Arduino Mega Pin 11 (via 1K resistor) * Mini Mp3 TX -> Arduino Mega Pin 10 * Mini Mp3 VCC -> 5V * Mini Mp3 GND -> GND * Speaker connected to SPK_1 and SPK_2 pins * Button UP -> Pin 2 (other leg to GND) * Button DOWN -> Pin 3 (other leg to GND) * * SD Card: Put mp3 files in root, named 001.mp3, 002.mp3, etc. */ #include <DIYables_MiniMp3.h> #include <SoftwareSerial.h> SoftwareSerial mp3Serial(10, 11); // RX, TX DIYables_MiniMp3 mp3; const int BUTTON_VOL_UP = 2; const int BUTTON_VOL_DOWN = 3; int volume = 15; // Start at half volume void setup() { Serial.begin(9600); mp3Serial.begin(9600); pinMode(BUTTON_VOL_UP, INPUT_PULLUP); pinMode(BUTTON_VOL_DOWN, INPUT_PULLUP); mp3.begin(mp3Serial); delay(1000); mp3.setVolume(volume); mp3.loopTrack(1); // Play track 1 on repeat Serial.print("Volume: "); Serial.println(volume); } void loop() { // Volume Up button (pressed = LOW because of INPUT_PULLUP) if (digitalRead(BUTTON_VOL_UP) == LOW) { if (volume < 30) { volume++; mp3.setVolume(volume); Serial.print("Volume: "); Serial.println(volume); } delay(200); // Simple debounce } // Volume Down button if (digitalRead(BUTTON_VOL_DOWN) == LOW) { if (volume > 0) { volume--; mp3.setVolume(volume); Serial.print("Volume: "); Serial.println(volume); } delay(200); // Simple debounce } }

Fonctions de volume

Function Description Code
setVolume(v) Régler directement (0–30) mp3.setVolume(20)
volumeUp() +1 mp3.volumeUp()
volumeDown() −1 mp3.volumeDown()
getVolume() Lire le niveau actuel mp3.getVolume()

Code Mega — Boutons suivant/précédent

/* * DIYables Mini Mp3 Player - Next/Previous with Buttons * * Product: DIYables Mini Mp3 Player Module * https://diyables.io/products/mini-mp3-player-module * * Use two buttons to play next/previous tracks. * Displays the current track number on the Serial Monitor. * * Wiring (Arduino Mega): * Mini Mp3 RX -> Arduino Mega Pin 11 (via 1K resistor) * Mini Mp3 TX -> Arduino Mega Pin 10 * Mini Mp3 VCC -> 5V * Mini Mp3 GND -> GND * Speaker connected to SPK_1 and SPK_2 pins * Button NEXT -> Pin 2 (other leg to GND) * Button PREV -> Pin 3 (other leg to GND) * * SD Card: Put mp3 files in root, named 001.mp3, 002.mp3, etc. */ #include <DIYables_MiniMp3.h> #include <SoftwareSerial.h> SoftwareSerial mp3Serial(10, 11); // RX, TX DIYables_MiniMp3 mp3; const int BUTTON_NEXT = 2; const int BUTTON_PREV = 3; void setup() { Serial.begin(9600); mp3Serial.begin(9600); pinMode(BUTTON_NEXT, INPUT_PULLUP); pinMode(BUTTON_PREV, INPUT_PULLUP); mp3.begin(mp3Serial); delay(1000); mp3.setVolume(20); mp3.play(1); // Start with track 1 Serial.println("Press NEXT or PREV button to change track"); } void loop() { if (digitalRead(BUTTON_NEXT) == LOW) { Serial.println("Next track"); mp3.playNext(); delay(300); // Simple debounce } if (digitalRead(BUTTON_PREV) == LOW) { Serial.println("Previous track"); mp3.playPrevious(); delay(300); // Simple debounce } }

Code Mega — Pause/Reprise

/* * DIYables Mini Mp3 Player - Pause and Resume * * Product: DIYables Mini Mp3 Player Module * https://diyables.io/products/mini-mp3-player-module * * Demonstrates pausing and resuming playback using a single button. * Press the button to toggle between pause and resume. * * Wiring (Arduino Mega): * Mini Mp3 RX -> Arduino Mega Pin 11 (via 1K resistor) * Mini Mp3 TX -> Arduino Mega Pin 10 * Mini Mp3 VCC -> 5V * Mini Mp3 GND -> GND * Speaker connected to SPK_1 and SPK_2 pins * Button -> Pin 2 (other leg to GND) * * SD Card: Put mp3 files in root, named 001.mp3, 002.mp3, etc. */ #include <DIYables_MiniMp3.h> #include <SoftwareSerial.h> SoftwareSerial mp3Serial(10, 11); // RX, TX DIYables_MiniMp3 mp3; const int BUTTON_PIN = 2; bool paused = false; void setup() { Serial.begin(9600); mp3Serial.begin(9600); pinMode(BUTTON_PIN, INPUT_PULLUP); mp3.begin(mp3Serial); delay(1000); mp3.setVolume(20); mp3.play(1); Serial.println("Playing. Press button to pause/resume."); } void loop() { if (digitalRead(BUTTON_PIN) == LOW) { if (paused) { mp3.resume(); Serial.println("Resumed"); } else { mp3.pause(); Serial.println("Paused"); } paused = !paused; delay(300); // Simple debounce } }

Code Mega — Répéter une piste

/* * DIYables Mini Mp3 Player - Loop Track * * Product: DIYables Mini Mp3 Player Module * https://diyables.io/products/mini-mp3-player-module * * Loops (repeats) a track continuously with EQ setting. * * Wiring (Arduino Mega): * Mini Mp3 RX -> Arduino Mega Pin 11 (via 1K resistor) * Mini Mp3 TX -> Arduino Mega Pin 10 * Mini Mp3 VCC -> 5V * Mini Mp3 GND -> GND * Speaker connected to SPK_1 and SPK_2 pins * * SD Card file structure: * /001.mp3 * /002.mp3 * ... */ #include <DIYables_MiniMp3.h> #include <SoftwareSerial.h> SoftwareSerial mp3Serial(10, 11); // RX, TX DIYables_MiniMp3 mp3; void setup() { Serial.begin(9600); mp3Serial.begin(9600); mp3.begin(mp3Serial); delay(1000); // Wait for the module to initialize mp3.setVolume(25); // Volume: 0 to 30 mp3.setEQ(DIYables_MiniMp3::EQ_NORMAL); Serial.println("Playing track 1 on loop..."); mp3.loopTrack(1); } void loop() { // Your code here }

Fonctions de répétition et lecture aléatoire

Function Description Code
loopTrack(n) Répéter une piste mp3.loopTrack(1)
loopFolder(f) Répéter tout dans un dossier mp3.loopFolder(1)
loopAll() Répéter tout mp3.loopAll()
stopLoop() Arrêter la répétition mp3.stopLoop()
shuffle() Ordre aléatoire mp3.shuffle()

Code Mega — Lecture par dossier

/* * DIYables Mini Mp3 Player - Play from Folder * * Product: DIYables Mini Mp3 Player Module * https://diyables.io/products/mini-mp3-player-module * * Plays tracks from specific folders on the SD card. * * Wiring (Arduino Mega): * Mini Mp3 RX -> Arduino Mega Pin 11 (via 1K resistor) * Mini Mp3 TX -> Arduino Mega Pin 10 * Mini Mp3 VCC -> 5V * Mini Mp3 GND -> GND * Speaker connected to SPK_1 and SPK_2 pins * * SD Card file structure: * /01/001.mp3 <- playFolder(1, 1) * /01/002.mp3 <- playFolder(1, 2) * /02/001.mp3 <- playFolder(2, 1) * /02/002.mp3 <- playFolder(2, 2) * * IMPORTANT: * - Numbering starts from 1, NOT 0 * - Folder names must be 2-digit zero-padded (01-99) * - Track names must be 3-digit zero-padded (001-255) * - Format SD card as FAT32, then copy files one by one in order * - Track order is determined by the order files were copied, * NOT by filename. So copy them in the correct sequence. */ #include <DIYables_MiniMp3.h> #include <SoftwareSerial.h> SoftwareSerial mp3Serial(10, 11); // RX, TX DIYables_MiniMp3 mp3; void setup() { Serial.begin(9600); mp3Serial.begin(9600); mp3.begin(mp3Serial); delay(1000); mp3.setVolume(20); // Play track 1 from folder 01 Serial.println("Playing folder 01, track 001..."); mp3.playFolder(1, 1); delay(5000); // Play track 2 from folder 01 Serial.println("Playing folder 01, track 002..."); mp3.playFolder(1, 2); delay(5000); // Play track 1 from folder 02 Serial.println("Playing folder 02, track 001..."); mp3.playFolder(2, 1); } void loop() { // Nothing to do here }

Fonctions de dossier

Function Description Code
playFolder(f, t) Dossier f, piste t (99 dossiers, 255 pistes) mp3.playFolder(1, 1)
playLargeFolder(f, t) Mode grand dossier (15 dossiers, 3000 pistes) mp3.playLargeFolder(1, 500)
playFromMP3Folder(t) Depuis le dossier /mp3 mp3.playFromMP3Folder(1)

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !