Bonjour. J’ai un circuit:
#include "Wire.h" // Bus I2C
#include "LiquidCrystal_I2C.h" // Utilisation afficheur I2C
LiquidCrystal_I2C LCDB(0x26, 16, 2); // definition du type d'afficheur pour ballon
byte CompteurAffichage = 0;
void setup {
LCDB.init(); // initialisation de l'afficheur
LCDB.backlight(); // éclairage LED afficheur
LCDB.setCursor(1, 0);
LCDB.print(F("Initialisation"));
LCDB.setCursor(1, 1);
LCDB.print(F(" Ballon "));
}
void loop() {
if(CompteurAffichage < 2){
if(Egalisation){
LCDB.setCursor(0, 0);
LCDB.print(F("Ballon arrete "));
LCDB.setCursor(0, 1);
LCDB.print(F("Egalisation batt "));
} else if(BallonOn){
LCDB.setCursor(0, 0);
LCDB.print(F("Ballon en service "));
LCDB.setCursor(0, 1);
LCDB.print(F("consigne: "));
LCDB.print(tpConsigneBallon);
LCDB.print(F(" deg "));
} else {
LCDB.setCursor(0, 0);
LCDB.print(F("Ballon arrete "));
LCDB.setCursor(0, 1);
LCDB.print(F("Non prioritaire "));
}
}
if(CompteurAffichage >= 2 && CompteurAffichage < 4) {
LCDB.setCursor(0, 0); //"
LCDB.print(F("DelestageLevel "));
LCDB.setCursor(0, 1);
LCDB.print(DelestageLevel);
if(ForcageBallon)
LCDB.print(F(" + Forcage "));
else
LCDB.print(F(" "));
}// if(CompteurAffichage > 2)
if(CompteurAffichage >= 4 && CompteurAffichage < 6) {
if(Chauffage){
LCDB.setCursor(0, 0); //"
LCDB.print(F("Chauffage "));
LCDB.setCursor(0, 1);
if(T1isOn) LCDB.print(F("Niveau 2 "));
else LCDB.print(F("Niveau 1 "));
} else {
LCDB.setCursor(0, 0);
LCDB.print(F("Pas_de_chauffage "));
LCDB.setCursor(0, 1);
LCDB.print(F("en maison "));
}
}
if(CompteurAffichage > 6)
CompteurAffichage = 0;
else CompteurAffichage ++;
} // void loop()
Au début tout va bien. Puis petit à petit, apparait des sigles bizarres qui finissent par remplir tout l’afficheur. Après environ 1/2 heures, les écritures normales réapparaissent pour un temps.
Mais les sigles bizarres reviennent toujours. ( Pourtant ce n’est pas du Martien )
J’ai essayé un LCDB.clear mais ça ne change rien. Mais qu’aurais je donc oublié ?