Arduino Nano - Lecteur MP3

Ce tutoriel explique comment fabriquer un lecteur MP3 en utilisant un Arduino Nano, un module lecteur MP3, une carte Micro SD et un haut-parleur. Les fichiers MP3 (musique ou audio enregistré) sont stockés dans la carte Micro SD. Ensuite, l'Arduino Nano peut contrôler le module lecteur MP3 pour lire une chanson sélectionnée depuis la carte SD, la convertir en signal audio et envoyer ce signal au haut-parleur. En détail, nous allons apprendre :

Ensuite, vous pouvez modifier le code pour ajouter un potentiomètre ou un encodeur rotatif pour changer le volume.

Préparation du matériel

1×Arduino Nano
1×USB A to Mini-B USB cable
1×Serial MP3 Player Module
1×Micro SD Card
1×3.5mm Aux Speaker
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino Nano
1×(Recommended) Screw Terminal Adapter for Arduino Nano

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
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 lecteur MP3 série et du haut-parleur

Module lecteur MP3 série Brochage

Un module de lecteur MP3 série possède trois interfaces :

  • L'interface vers Arduino Nano comprend 4 broches :
    • Broche RX : broche de données, doit être connectée à une broche TX de Arduino Nano (série matérielle ou logicielle)
    • Broche TX : broche de données, doit être connectée à une broche RX de Arduino Nano (série matérielle ou logicielle)
    • Broche VCC : broche d'alimentation, doit être connectée à VCC (5V)
    • Broche GND : broche d'alimentation, doit être connectée à GND (0V)
  • L'interface pour le haut-parleur est une prise jack femelle de sortie Aux de 3,5 mm.
  • L'interface pour la carte Micro SD est un socket de carte Micro SD à l'arrière du module.
Module lecteur MP3 série - Brochage
image source: diyables.io

Schéma des broches du haut-parleur

Un haut-parleur a généralement deux interfaces :

  • Interface de signal audio : il s'agit d'un connecteur mâle Aux de 3,5 mm qui se connecte au module lecteur MP3
  • Interface de puissance : elle peut être USB, adaptateur d'alimentation 5V ou toute autre interface de puissance

Comment ça fonctionne

Ce dont nous avons besoin pour nous préparer :

  • Pré-enregistrer une liste de chansons ou d'audios que nous voulons jouer sur une carte micro SD.
  • Insérer la carte micro SD dans le module lecteur MP3.
  • Connecter le module lecteur MP3 à Arduino Nano.
  • Connecter le haut-parleur au module lecteur MP3.
  • Connecter le haut-parleur à une source d'alimentation.

Chaque fichier MP3 enregistré sur la carte Micro SD aura un index. L'index est l'ordre de la chanson enregistrée, à partir de 0.

Ensuite, nous pouvons programmer l'Arduino Nano pour envoyer des commandes au module lecteur MP3. Il prend en charge les commandes suivantes :

  • Jouer
  • Pause
  • Lire le suivant
  • Lire le précédent
  • Changer le volume

Lorsque le module du lecteur MP3 est activé, il lit le fichier MP3 à partir de la carte micro SD, convertit les fichiers MP3 en signal audio et transmet ce signal audio au haut-parleur via l'interface Aux de 3,5 mm.

Diagramme de câblage

Schéma de câblage du module lecteur MP3 Arduino Nano

This image is created using Fritzing. Click to enlarge image

Code Arduino Nano - Jouer de la musique

Le code ci-dessous joue la première chanson stockée sur la carte Micro SD.

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-nano/arduino-nano-mp3-player */ #include <SoftwareSerial.h> #define CMD_PLAY_NEXT 0x01 #define CMD_PLAY_PREV 0x02 #define CMD_PLAY_W_INDEX 0x03 #define CMD_SET_VOLUME 0x06 #define CMD_SEL_DEV 0x09 #define CMD_PLAY_W_VOL 0x22 #define CMD_PLAY 0x0D #define CMD_PAUSE 0x0E #define CMD_SINGLE_CYCLE 0x19 #define DEV_TF 0x02 #define SINGLE_CYCLE_ON 0x00 #define SINGLE_CYCLE_OFF 0x01 #define ARDUINO_RX 8 // Arduino Nano Pin connected to the TX of the Serial MP3 Player module #define ARDUINO_TX 7 // Arduino Nano Pin connected to the RX of the Serial MP3 Player module SoftwareSerial mp3(ARDUINO_RX, ARDUINO_TX); void setup() { Serial.begin(9600); mp3.begin(9600); delay(500); // wait chip initialization is complete mp3_command(CMD_SEL_DEV, DEV_TF); // select the TF card delay(200); // wait for 200ms mp3_command(CMD_PLAY, 0x0000); // Play mp3 //mp3_command(CMD_PAUSE, 0x0000); // Pause mp3 //mp3_command(CMD_PLAY_NEXT, 0x0000); // Play next mp3 //mp3_command(CMD_PLAY_PREV, 0x0000); // Play previous mp3 //mp3_command(CMD_SET_VOLUME, 30); // Change volume to 30 } void loop() { } void mp3_command(int8_t command, int16_t dat) { int8_t frame[8] = { 0 }; frame[0] = 0x7e; // starting byte frame[1] = 0xff; // version frame[2] = 0x06; // The number of bytes of the command without starting byte and ending byte frame[3] = command; // frame[4] = 0x00; // 0x00 = no feedback, 0x01 = feedback frame[5] = (int8_t)(dat >> 8); // data high byte frame[6] = (int8_t)(dat); // data low byte frame[7] = 0xef; // ending byte for (uint8_t i = 0; i < 8; i++) { mp3.write(frame[i]); } }

Étapes rapides

  • Suivez les instructions dans la section Comment ça fonctionne
  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Cliquez sur le bouton Upload de l'IDE Arduino pour charger le code sur l'Arduino Nano
  • Profitez de la musique

Code Arduino Nano - Jouer de la musique avec des boutons de contrôle

Le code ci-dessous est une amélioration du code précédent. Il ajoute quatre boutons pour vous permettre d'interagir avec le lecteur MP3.

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-nano/arduino-nano-mp3-player */ #include <SoftwareSerial.h> #include <ezButton.h> #define CMD_PLAY_NEXT 0x01 #define CMD_PLAY_PREV 0x02 #define CMD_PLAY_W_INDEX 0x03 #define CMD_SET_VOLUME 0x06 #define CMD_SEL_DEV 0x09 #define CMD_PLAY_W_VOL 0x22 #define CMD_PLAY 0x0D #define CMD_PAUSE 0x0E #define CMD_SINGLE_CYCLE 0x19 #define DEV_TF 0x02 #define SINGLE_CYCLE_ON 0x00 #define SINGLE_CYCLE_OFF 0x01 #define ARDUINO_RX 8 // Arduino Nano Pin connected to the TX of the Serial MP3 Player module #define ARDUINO_TX 7 // Arduino Nano Pin connected to the RX of the Serial MP3 Player module SoftwareSerial mp3(ARDUINO_RX, ARDUINO_TX); ezButton button_play(2); // create ezButton object for pin 2 ezButton button_pause(3); // create ezButton object for pin 3 ezButton button_next(4); // create ezButton object for pin 4 ezButton button_prev(5); // create ezButton object for pin 5 void setup() { Serial.begin(9600); mp3.begin(9600); delay(500); // wait chip initialization is complete mp3_command(CMD_SEL_DEV, DEV_TF); // select the TF card delay(200); // wait for 200ms button_play.setDebounceTime(50); // set debounce time to 50 milliseconds button_pause.setDebounceTime(50); // set debounce time to 50 milliseconds button_next.setDebounceTime(50); // set debounce time to 50 milliseconds button_prev.setDebounceTime(50); // set debounce time to 50 milliseconds } void loop() { button_play.loop(); // MUST call the loop() function first button_pause.loop(); // MUST call the loop() function first button_next.loop(); // MUST call the loop() function first button_prev.loop(); // MUST call the loop() function first if (button_play.isPressed()) { Serial.println("Play mp3"); mp3_command(CMD_PLAY, 0x0000); } if (button_pause.isPressed()) { Serial.println("Pause mp3"); mp3_command(CMD_PAUSE, 0x0000); } if (button_next.isPressed()) { Serial.println("Play next mp3"); mp3_command(CMD_PLAY_NEXT, 0x0000); } if (button_prev.isPressed()) { Serial.println("Play previous mp3"); mp3_command(CMD_PLAY_PREV, 0x0000); } } void mp3_command(int8_t command, int16_t dat) { int8_t frame[8] = { 0 }; frame[0] = 0x7e; // starting byte frame[1] = 0xff; // version frame[2] = 0x06; // The number of bytes of the command without starting byte and ending byte frame[3] = command; // frame[4] = 0x00; // 0x00 = no feedback, 0x01 = feedback frame[5] = (int8_t)(dat >> 8); // data high byte frame[6] = (int8_t)(dat); // data low byte frame[7] = 0xef; // ending byte for (uint8_t i = 0; i < 8; i++) { mp3.write(frame[i]); } }

Le schéma de câblage pour le code ci-dessus :

Schéma de câblage du haut-parleur lecteur MP3 Arduino Nano

This image is created using Fritzing. Click to enlarge image

Maintenant, vous pouvez modifier les projets pour ajouter plus de fonctions, par exemple :

Vidéo

Références de fonction

Tutoriels connexes

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!