ecran1602

bonjour j’ai un écran LCD1602 , je programme dessus le départ et l’arriver d’un train. voici mon programme

#include <Wire.h>
#include "rgb_lcd.h"

rgb_lcd lcd;

void setup() 
{
  lcd.begin(16, 2);
  lcd.print("départ");

    delay(1000);
}

void loop() 
{
  lcd.setCursor(0, 1);
  lcd.setCursor(1, 1);
  lcd.print("arriver");

    delay(100);
}

mon problème c’est que quand je met lcd.clear () ; il ne m’efface que la première ligne de mon écran , comment je peut faire pour qu’elle me supprime tout ?

PS: Mon écran est sur 2 ligne 16*2 bits

Bonjour,

lcd.clear() efface tout l'écran. Mets nous exactement le programme qui ne fonctionne pas et n'efface que la première ligne.

Il n’y a aucun lcd.clear() dans votre code… postez le code qui a un problème…

(et si la première chose que vous faites dans la loop() c’est de ra-afficher du texte sur la deuxième ligne, vous n’aurez à peine le temps de voir un clignotement)

#include <Wire.h>
#include "rgb_lcd.h"

rgb_lcd lcd;

void setup() 
{
  lcd.begin(16, 2);
  lcd.print("depart");

    delay(1000);
}

void loop() 
{
  lcd.setCursor(0, 1);
  lcd.setCursor(1,1);
  lcd.print("arriver");

    delay(5000);
    lcd.clear();
    
  lcd.print("attente");
  
}

je voudrais effacer tout l’écran après qu’il est afficher "départ " “arriver” donc je met lcd.clear(); tout de suite après l’attente de 5s

Tu réécris sur l'écran tout de suite après l'avoir effacé donc tu ne peux pas voir s'il a vraiment été effacé complètement.

Essayez

void loop() 
{
  lcd.setCursor(0, 1);
  lcd.print("arrive");
  delay(5000);
  lcd.clear();
  delay(15000);
}

là vous aurez le temps de voir que l’écran s’efface