Utilisation d'un Keypad et d'un LCD en I2C

Bonjour !

J’ai fait un script pour faire afficher un caractère sur un LCD I2C en fonction de la touche enfoncée sur un Keypad 4x4.

Or, lorsque j’appuie sur une touche, le caractère s’affiche bien mais avec 2x quatre traits superposés
(un peu comme 2x deux “=” empilés)

C’est assez embêtant et (sauf si j’ai mal cherché) je ne trouve pas d’explication à ce problème sur les forums Arduino !

Merci de votre aide si vous savez comment (sans faire afficher d’espaces) enlever ces caractères.

Voici mon script

#include <Keypad.h>
#include <LiquidCrystal_I2C.h>

const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {9, 8, 7, 6}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

LiquidCrystal_I2C lcd(0x3F,16, 2);  // SET I2C Address


void setup(){
    Serial.begin(9600);

    lcd.init();
    lcd.init();
    lcd.backlight();
}
  
void loop(){
  char key = keypad.getKey();
  if (key){
    lcd.clear();
    lcd.println(key);
    delay(100);
  }
}

PJ: L’affichage à l’écran lorsque j’appuie sur une touche.

println vous met les caractères \n (et \r, je crains) que le LCD ne sait pas afficher (et met donc un saint bol non affichable). Retirez donc le ln de print[u]ln[/u] et voyez si c'est moins désagréable.

Merci beaucoup, ça fonctionne ! C'était si bête.

Bonne soirée !