défilement de texte sur lcd 16x2

Bonjour

J’aimerais faire défiler un texte de gauche à droite sur la ligne 0 et un autre texte de droite à gauche sur la ligne 1 et tout sa en même temps mais je n’y arrive pas.
Voici ce que j’ai déjà fait:

#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
void setup() {
lcd.begin(16, 2);
}

void loop() {
lcd.setCursor(0,0);
lcd.print("ARDUINO ;)");
lcd.scrollDisplayRight();
delay(1000);
lcd.setCursor(15,1);
lcd.print("C'EST GENIAL");
lcd.scrollDisplayLeft();
delay(1000);
}

Bonjour,

Le scrollDisplayRight() ou lcd.scrollDisplayLeft() affecte tout l'écran.
Si tu veux faire défiler une ligne dans un sens et la seconde dans l'autre sens, il faut le gérer avec ton programme.

Merci mais comment je fait ça peut tu m’expliquer ?

Tu réaffiches en décalant d’un caractère à chaque fois.
Comme ceci par exemple

void loop() {
  lcd.clear();
  for (byte i = 0; i < 15; i++)
  {
    lcd.setCursor(i, 0);
    lcd.print(" ARDUINO ;)");
    lcd.setCursor(15 - i, 1);
    lcd.print("C'EST GENIAL ");
    delay(1000);
  }
}

Merci beaucoup
Donc si j’ai bien compris

lcd.setCursor(15 - i, 1);

sert a mettre une colonne de moins a chaque fois que c’est exécuté mais par contre comment celui là fonctionne ?

lcd.setCursor(i, 0);

Ca positionne le curseur sur la ième colonne avec i qui varie de 0 à 15 dans la boucle.

Donc c’est la partie i < 15 qui la fait varier ?

for (byte i = 0; i < 15; i++)

Et i++ sert à quoi ? (désolé si je pose pleins de questions c’est que je suis curieux).

Voir l’instruction for

la première partie est la valeur de debut → 0
la deuxième partie est le test de fin → faire la boucle tant que x<15 (en fait il vaudrait mieux mettre 16)
la troisième partie est l’incrémentation de i → équivalent à i=i+1

i++ correspond à i=i+1

Donc à chaque boucle i augmente de 1

Edit: Grillé....

Merci grâce a vous j'ai tout compris !

Bonjour a tous,

Merci pour ta question polochondu88 j'avais le même problème, cependant j'utilise déjà " i ", dans mon programme pour une autre fonction, est-il possible de changer cette lettre par une autre?

Tigerx13:
cependant j’utilise déjà " i ", dans mon programme pour une autre fonction, est-il possible de changer cette lettre par une autre?

essayez :slight_smile:

si vous avez un i dans une autre fonction, ce n’est pas un problème et si vous faites un

for (byte i = 0; i < 15; i++) {
 // des trucs
}

alors i n’est connu que pendant l’exécution de “des trucs” et n’existe plus ensuite, donc vous pouvez réutiliser i après, dans la même fonction.

vous devriez lire un tuto sur la portée des variable (voici le premier truc que me donne google)

Bonjour,
J'espère que vous allez bien !

Comment faire fonctionner deux capteurs ultrasons HC-SRO4 simultanément pour ne pas avoir à utiliser deux programmes différents .. C'est-à dire deux circuits imprimés différents.

En effet je travail sur un projet de lave main automatique, et j'utilise un capteur Ultrason pour afficher sur mon lcd le niveau d'eau dans les deux réservoirs.

Merci de m'orienter.

Bonjour

Quel rapport avec le sujet du fil de discussion (défilement de texte) ?