Jouer des fichier audio avec votre Arduino grâce au DFPlayer mp3-tf-16p
Le module MP3-TF-16P, également connu sous le nom de DFPlayer Mini MP3 Player pour Arduino, est un petit dispositif conçu pour la lecture de fichiers audio au format MP3. Intégrant un lecteur de carte microSD (TF), ce module est largement utilisé dans divers projets électroniques tels que des systèmes de sonorisation, des lecteurs audio portables et des alarmes sonores.
Il peut être utilisé de manière autonome avec une batterie, un haut-parleur et des boutons-poussoirs attachés, ou bien en combinaison avec un Arduino UNO ou tout autre module disposant de capacités RX/TX. Ce module nécessite l’utilisation d’une carte microSD pour le stockage des fichiers MP3.
Il offre la possibilité de lire des fichiers MP3 à partir de la carte microSD, ainsi que la capacité d’être contrôlé à l’aide de boutons-poussoirs ou d’un microcontrôleur. De plus, il dispose généralement d’une sortie audio permettant de connecter un haut-parleur ou un casque, et fonctionne avec une alimentation généralement basse tension (par exemple, 3.3V ou 5V), ce qui le rend compatible avec une variété de systèmes électroniques. Certains modèles peuvent également proposer des fonctionnalités supplémentaires telles que la lecture aléatoire ou la répétition de pistes. En résumé, ce module offre une solution polyvalente pour la lecture de fichiers MP3 dans une gamme étendue d’applications électroniques.
Caractéristiques principales
- Prise en charge de cartes micro SD jusqu’à 32Go
- Volume réglable de 0 à 30
- Prise en charge jusqu’à 100 dossiers de 255 fichiers
Ce dont vous aurez besoin
Liens publicitaires Amazon
Pinout du dfplayer mp3-tf-16p
Branchement du module DFPlayer à l’Arduino
La résistance est d’une valeur de 1Kohm, j’utilise pour ma part un haut-parleur de 2W,
Même schéma de connexion disponible sur le site officiel de la librairie DFrobot
Installer la bibliothèque de DRrobot pour le mp3-tf-16p
Pour cela rendez-vous dans le gestionnaire de bibliothèque de votre logiciel Arduino: « outils »> »Gérer les bibliothèques »
Fonctions de la librairie DFRobotDFPlayerMini
myDFPlayer.next(); | Joue le morceau suivant. |
myDFPlayer.previous(); | Joue le morceau précédent. |
myDFPlayer.play(1); | Joue le premier morceau. |
myDFPlayer.loop(1); | Boucle le premier morceau. |
myDFPlayer.pause(); | Met en pause le morceau en cours de lecture. |
myDFPlayer.start(); | Reprend la lecture du morceau en pause. |
myDFPlayer.playFolder(15, 4); | Joue un morceau spécifique situé dans SD:/15/004.mp3 ; Nom du dossier(1~99) ; Nom du fichier(1~255). |
myDFPlayer.enableLoopAll(); | Active la boucle de tous les fichiers MP3. |
myDFPlayer.disableLoopAll(); | Désactive la boucle de tous les fichiers MP3. |
myDFPlayer.playMp3Folder(4); | Joue un morceau spécifique situé dans SD:/MP3/0004.mp3 ; Nom du fichier(0~65535). |
myDFPlayer.advertise(3); | |
myDFPlayer.stopAdvertise(); | |
myDFPlayer.playLargeFolder(2, 999); | Joue un morceau spécifique situé dans SD:/02/004.mp3 ; Nom du dossier(1~10) ; Nom du fichier(1~1000). |
myDFPlayer.loopFolder(5); | Boucle tous les morceaux dans le dossier SD:/05. |
myDFPlayer.randomAll(); | Joue aléatoirement tous les morceaux MP3. |
myDFPlayer.enableLoop(); | Active la boucle. |
myDFPlayer.disableLoop(); | Désactive la boucle. |
Serial.println(myDFPlayer.readState()); | Lit l’état actuel de lecture du MP3. |
Serial.println(myDFPlayer.readVolume()); | Lit le volume actuel. |
Serial.println(myDFPlayer.readEQ()); | Lit les réglages d’égalisation actuels. |
Serial.println(myDFPlayer.readFileCounts()); | Lit le nombre total de fichiers sur la carte SD. |
Serial.println(myDFPlayer.readCurrentFileNumber()); | Lit le numéro du fichier en cours de lecture. |
Serial.println(myDFPlayer.readFileCountsInFolder(3)); | Lit le nombre de fichiers dans le dossier SD:/03. |
Code Arduino DFPlayer mp3-tf-16p
Il s’agit ici du code d’essai de la bibliothèque
/***************************************************
DFPlayer - A Mini MP3 Player For Arduino
<https://www.dfrobot.com/product-1121.html>
***************************************************
This example shows the basic function of library for DFPlayer.
Created 2016-12-07
By [Angelo qiao](Angelo.qiao@dfrobot.com)
GNU Lesser General Public License.
See <http://www.gnu.org/licenses/> for details.
All above must be included in any redistribution
****************************************************/
/***********Notice and Trouble shooting***************
1.Connection and Diagram can be found here
<https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299#Connection_Diagram>
2.This code is tested on Arduino Uno, Leonardo, Mega boards.
****************************************************/
#include "Arduino.h"
#include "DFRobotDFPlayerMini.h"
#if (defined(ARDUINO_AVR_UNO) || defined(ESP8266)) // Using a soft serial port
#include <SoftwareSerial.h>
SoftwareSerial softSerial(/*rx =*/4, /*tx =*/5);
#define FPSerial softSerial
#else
#define FPSerial Serial1
#endif
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);
void setup()
{
#if (defined ESP32)
FPSerial.begin(9600, SERIAL_8N1, /*rx =*/D3, /*tx =*/D2);
#else
FPSerial.begin(9600);
#endif
Serial.begin(115200);
Serial.println();
Serial.println(F("DFRobot DFPlayer Mini Demo"));
Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));
if (!myDFPlayer.begin(FPSerial, /*isACK = */true, /*doReset = */true)) { //Use serial to communicate with mp3.
Serial.println(F("Unable to begin:"));
Serial.println(F("1.Please recheck the connection!"));
Serial.println(F("2.Please insert the SD card!"));
while(true){
delay(0); // Code to compatible with ESP8266 watch dog.
}
}
Serial.println(F("DFPlayer Mini online."));
myDFPlayer.volume(10); //Set volume value. From 0 to 30
myDFPlayer.play(1); //Play the first mp3
}
void loop()
{
static unsigned long timer = millis();
if (millis() - timer > 3000) {
timer = millis();
myDFPlayer.next(); //Play next mp3 every 3 second.
}
if (myDFPlayer.available()) {
printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Print the detail message from DFPlayer to handle different errors and states.
}
}
void printDetail(uint8_t type, int value){
switch (type) {
case TimeOut:
Serial.println(F("Time Out!"));
break;
case WrongStack:
Serial.println(F("Stack Wrong!"));
break;
case DFPlayerCardInserted:
Serial.println(F("Card Inserted!"));
break;
case DFPlayerCardRemoved:
Serial.println(F("Card Removed!"));
break;
case DFPlayerCardOnline:
Serial.println(F("Card Online!"));
break;
case DFPlayerUSBInserted:
Serial.println("USB Inserted!");
break;
case DFPlayerUSBRemoved:
Serial.println("USB Removed!");
break;
case DFPlayerPlayFinished:
Serial.print(F("Number:"));
Serial.print(value);
Serial.println(F(" Play Finished!"));
break;
case DFPlayerError:
Serial.print(F("DFPlayerError:"));
switch (value) {
case Busy:
Serial.println(F("Card not found"));
break;
case Sleeping:
Serial.println(F("Sleeping"));
break;
case SerialWrongStack:
Serial.println(F("Get Wrong Stack"));
break;
case CheckSumNotMatch:
Serial.println(F("Check Sum Not Match"));
break;
case FileIndexOut:
Serial.println(F("File Index Out of Bound"));
break;
case FileMismatch:
Serial.println(F("Cannot Find File"));
break;
case Advertise:
Serial.println(F("In Advertise"));
break;
default:
break;
}
break;
default:
break;
}
}
Pour éviter les problèmes de lectures avec le MP3-tf-16p
Facultatif* Afin d’assurer une bonne lecture de vos fichier MP3 renommez les sans caractères spéciaux. Ex: 01titre, 02titre ou titre01, titre02, …
0 commentaires