//MP3_en_boucle190823 //Pour module DFP Player MP3...Attention l'alimentation USB via le PC peut être insuffisante ! //TX = 1 seule utilisable pour piloter le module MP3 int volume = 0; //Volume du son de 10 à 30 int piste = 1; //N° piste du son à jouer Attention!!!!!!!! ce chiffre est l'ordre dans lequel cette piste a été inscrite sur la carte SD!!!!!!!!!! //son nom éventuel est ignoré par le module!!! int periode = 20000; //En ms entre deux départs de lecture //Le module mp3 reçoit des chaines de 10 bytes composées et émises sur TX par execute_CMD(). # define Start_Byte 0x7E # define Version_Byte 0xFF # define Command_Length 0x06 # define End_Byte 0xEF # define Acknowledge 0x00 //Returns info with command 0x41 [0x01: info, 0x00: no info] void setup() ///////////////////////////////////////// {//Initialisation du module Serial.begin(9600); execute_CMD(0x0C, 0, 0);//Reset module delay(500); execute_CMD(0x3F, 0, 0);//Send init parameters delay(500); volume = 15; execute_CMD(0x06, 0, volume); // Set the volume (0x00~0x30) delay(500); } void execute_CMD (byte CMD, byte Par1, byte Par2)///////////////////////////////// // Execute the command and parameters { // Calculate the checksum (2 bytes) word checksum = -(Version_Byte + Command_Length + CMD + Acknowledge + Par1 + Par2); // Build the command line byte Command_line[10] = { Start_Byte, Version_Byte, Command_Length, CMD, Acknowledge, Par1, Par2, highByte(checksum), lowByte(checksum), End_Byte }; //Send the command line to the module for (byte k = 0; k < 10; k++) { Serial.write( Command_line[k]); //Sur la patte 1 =TX du nano } } void play_son(int piste)//Jouer une piste /////////////////////////////// { execute_CMD(0x0C, 0, 0);//Reset module delay(500); execute_CMD(0x03, 0, piste ); //piste son delay(periode);// jouer pendant cete durée ( en ms) } //////////////////////////////////////////////////// void loop() { play_son(piste); //Joue la piste }