Associer un lcd I2C avec le dfplayer mini mp3

bonjour
je suis nouveau sur le forum et vous remercie de votre acceptation dans le groupe
retraité depuis 10 ans (70 ans ) ayant pratiqué le BASIC dans les année 80
je me suis intéressé au montage Arduino et pratique IDE depuis très peu de temps 1 mois
je veux réaliser un lecteur MP3 avec lecteur LCD

  • un DFPLAYER mini mp3
  • écran LCD 2*16 i2c
  • un potentiomètre pour le son
  • et quatre boutons
  • une carte Arduino uno
    J'ai consulter quelques vidéos et lu quelques codes
    mais je n'arrive pas à corriger les erreurs sur la lige 57 et 60 entre autre et bien d'autre questions
    merci d'avance

#include <Arduino.h>
#include <SoftwareSerial.h>
#include <DFRobotDFPlayerMini.h>
#include <LiquidCrystal_I2C.h>

#define TX 2
#define RX 3

SoftwareSerial mysoftwareSerial(RX,TX);
DFRobotDFPlayerMini myMp3;
LiquidCrystal_I2C myLcd(0x27, 16, 2); // ECRAN LCD 12 C

void setup()
 { 
  Serial.begin(9600);
  mysoftwareSerial.begin(115200); 
 
  myLcd.init();
  myLcd.backlight();  //PROPRE A CET AFFICHEUR  LCD 12C
  
  pinMode (4, INPUT_PULLUP);
  pinMode (5, INPUT_PULLUP);
  pinMode (6, INPUT_PULLUP);
  pinMode (7, INPUT_PULLUP);
  pinMode (A0,INPUT);

   Serial.print("VOLUME");
    Serial.print("PLAY");
     Serial.print("VOLUME"); 
     
    myLcd.begin(16, 2);
    myLcd.setCursor(0, 0);
    myLcd.print("PISTE");
    myLcd.setCursor(10, 0);
    myLcd.print("PLAY");
    myLcd.setCursor(0, 1);
    myLcd.print("volume");
    

     

 if (myMp3.begin(mysoftwareSerial)){ 
      myMp3.play();
      myMp3. enableLoopAll();
     } else{
    Serial.println("connecting to DFPlayer Mini failed!");
    }
 } 
 
void loop(){
  int Previous = digitalRead(4);
  int Pause = digitalRead(5);
  int Start = digitalRead(6);
  int Next  = digitalRead(7);
  //uint8_t volume = digitalRead(A0); 
  
  if(Previous == LOW){myMp3.previous();TrackNumberClear(); } 
  if (Pause == LOW) {myMp3.pause(); myLcd.setCursor(10, 0);myLcd.print("pause");}
  if (Start == LOW) {myMp3.start(); myLcd.setCursor(10, 0);myLcd.print("play");}
  if(Next == LOW) {myMp3.next();TrackNumberClear();}
  
    myMp3.volume(map(analogRead(A0), 0, 1023, 0, 30));      
    myLcd.setCursor(6, 0);
    myLcd.print(myMp3.readCurrentFileNumber());
    myLcd.setCursor(7, 1);
if (myMp3.readVolume() < 10){
    myLcd.print(String("0") + myMp3.readVolume());
    //   delay (1000);
 }
 else{
   myLcd.print(myMp3.readVolume());
  }
}

bonjour et bienvenue sur le forum

prenez le temps de lire les recommandations listées dans "Les bonnes pratiques du Forum Francophone” car vous avez posté dans la mauvaise catégorie (ce n'est pas un tuto)

➜ je l'ai déplacé vers le forum francophone pour vous pour cette fois...
(bravo cependant pour avoir utilisé les balises de code dans votre premier post !)

le DFPlayer ne doit pas fonctionner à 115200 bauds.. de mémoire je crois que c'est 9600. (et software serial ne fonctionne pas bien à ce débit)

en revanche

vous pouvez mettre la console série à 115200 bauds sans souci

sinon votre loop ne devrait modifier l'affichage que si les valeurs ont changé.

merci bien
j'avais lu les recommandations mais Jai du louper quelque chose.
pas simple pour moi mais Je promet de faire mieux.
pouvez vous m'indiquer la procédure pour mettre le a discussion dans le bon forum
existe t il un tuto pour se servir correctement du forum?
merci d'avance

ok je modifie la vitesse
d'autre part les 2 lignes qui me posent problème sont les lignes de condition qui utilisent "TrackNumberClear"

pour ce post, il est déplacé, donc rien de particulier à faire

pour un nouveau post, assurez vous de prendre le forum francophone quand vous créez votre topic

c'est quoi TrackNumberClear(); ?

est-ce que votre code provient de cette discussion (Résolu) DFPlayer et affichage LCD I2C ?

➜ il avait cette fonction dans son code

void TrackNumberClear() {
  delay(500);
  myLcd.setCursor(6, 0);
  myLcd.print("   ");
}

merci bien

bien vu
le code provient d'une vidéo en anglais sur YouTube et j'avais visionner cet autre code aussi
toutefois je viens de m'apercevoir, grâce à cotre perspicacité que j'ai fait disparaitre le chapitre vvoid Track que vous mentionnez
je viens de le recopier et ca fonctionne déjà mieux
merci bien

oui avoir le code des fonctions qu'on appelle, ça aide généralement :smile:

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.