Parlons Arduino > Vos projets

lecteur MP3 pour sonoriser reseau commandé par telecommande

<< < (2/2)

Tony04:

--- Citation de: msport le novembre 02, 2021, 09:43:14 pm ---lcd.setCursor(0, 1); est exécuté à chaque loop.
il faudrait positionner le curseur à (2, 1) avant lcd.print("pause"); (que je n'ai pas trouvé)

--- Fin de citation ---

Mais qui n'effacerait quand même pas le mot PAUSE, d'où les espaces proposés

Cordialement
Antoine

msport:
... on ne sait pas ce qui recherché !

Tony04:

--- Citation de: Pilou3837 le novembre 02, 2021, 07:12:30 pm ---Sur la deuxieme ligne j affiche l etat du lecteur par exemple "pause". par contre si j affiche  1 apres pause j'ai à l affichage   "1ause"
Y a t il un moyen de faire disparaitre le precedent affichage pour eviter que la commande suivante apparraise incluse dans la commande précedente.

--- Fin de citation ---

D'après ce que j'ai compris, en voulant afficher lors d'une seconde boucle un "1", il reste une partie du premier affichage cad "ause", d'où l'idée d'afficher plutôt qu'un "1", un "1    " avec le nombre d'espace pour remplir la ligne.

Est-ce cela Pierre ?

Pilou3837:
Oui c est cela

Si je positionne setCursor dans chaque Case au lieu de le mettre en debut de boucle ca ne change rien
ex

case 0xFF30CF:// bouton 1 lecture fichier 0001
        Serial.println("1");
        MP3.play(1);
        lcd.setCursor(0, 1);// Affiche information du lecteur sur la deuxième ligne
        lcd.print ("1");
        break;


L idée serait de n effacer que la deuxieme ligne a chaque boucle , la fonction clear dispo dans la biblio liquidcrystal  efface systematiquement  les deux lignes .
En jouant avec les espaces on s en sort  et l affichage est propre

Merci à tous

Pierre

Fantasio:
La solution de Tony04 est bonne.

Dans ta loop ,effectivement tu positionnes ton texte sur la 2ème ligne en colonne 0.
Donc pour effacer à coup sûr le texte précédent envoie systématiquement 16 caractères (texte suivi d'espace).
exemple:
case 0xFFA25D: // bouton Power pas d action
        Serial.println("POWER");
        lcd.print ("POWER      "); // 5 caractères suivi de 11 espaces
        break;
 

Navigation

[0] Index des messages

[*] Page précédente

Utiliser la version classique