Problème d'affichage écran LCD 20*4 lignes

Bonjour tout le monde,

Je suis actuellement en train d'essayer d'afficher du texte sur un écran LCD 20*4 lignes. Mon écran est le DFR0145 de la marque DFRobot (documentation officielle de l'écran).

J'ai correctement branché mon écran sur les pins analog 5 et 4 (le SCL sur le pin 5 et le SDA sur le pin 4) de mon Arduino Uno et j'ai testé plusieurs fois au multimètre mes branchements, tout fonctionne, le problème n'a pas l'air matériel.

Voici le code de mon programme :

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
   
LiquidCrystal_I2C lcd(0x20,20,4); 

void setup(){
  lcd.init();
  lcd.backlight();
  lcd.home();
  lcd.println("Test");
} 
void loop(){
}

Il se compile très bien, j'ai installé correctement les librairies.

Le problème est que normalement, je devrais voir "Test" en haut à gauche de l'écran sauf que je vois que "T" suivi d'un symbole bizarre, quatre barres horizontales.

J'ai regardé à peu près partout et je ne vois personne avec le même problème que moi.

Je précise que cet écran est neuf (il a été sorti de son sachet antistatique ce matin) et que je n'ai touché à aucun jumper ni autre chose.

Merci d'avance pour votre réponse ! :slight_smile:

hello
remplace lcd.println par lcd.print

Bonjour

Les caractères de retour chariot et avancée de ligne ne sont pas gérés par les contrôleurs de LCD.
=> remplace println("Test") par print("Test")

Merci pour vos deux réponses ! :slight_smile:

J'ai remplacé "lcd.println" par "lcd.print" et j'ai n'ai que la première lettre de ma chaîne de caractères, seul le T apparaît sur l'écran à présent.

quentinrenoux:
Merci pour vos deux réponses ! :slight_smile:

J'ai remplacé "lcd.println" par "lcd.print" et j'ai n'ai que la première lettre de ma chaîne de caractères, seul le T apparaît sur l'écrana présent.

bonsoir
essaie de replacer pour test
lcd.home(); par lcd.setCursor(0,0);

Non, encore une fois, cela n'a rien changé, j'ai uniquement le premier caractère qui apparaît.

Je vais tenter de créer une fonction qui affichera caractère par caractère mon mot.

Merci encore une fois à vous :slight_smile:

Bonjour,

J'utilise également cet afficheur.
Je n'ai jamais pu le faire fonctionner en I2C avec ma carte DUE.
En cherchant à résoudre mon problème je suis tombé sur plusieurs posts évoquant celui du premier caractère affiché.

En voici un parmi d'autres:

Le problème semble venir des librairies, il faut choisir celle qui permet une configuration adaptée au circuit.
Pour moi cela n'a pas fonctionné, mais la librairie la plus adaptée semble être "LiquidCrystal_I2Cv1"

Roger.

Si tu essai avec la librairie ci-dessus, je te donne les paramètres adaptés au DFR0154.

lcd(0x20, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

Merci beaucoup Roger, c'était bien un problème de librairie.

Sinon, j'avais écrit une fonction qui me donnait le même résultat.

bool afficher(String phrase, int posx, int posy, LiquidCrystal_I2C lcd){
  if(posx < 20 && posx >= 0 && posy < 4 and posy >= 0){
    for(int i = posx; i< posx+ phrase.length(); i++){
      lcd.setCursor(i, posy);
      lcd.print(phrase.charAt(i));
    }
    return true;
  }
  else{
    return false;
  }
}

Finalement, je n'ai rien eu à changer dans mon code, le seul changement de librairie a suffit à résoudre mon problème. Je joins le zip de la librairie qui fonctionne pour moi en espérant aider ceux qui rencontreront mon problème.

Sinon, merci à tous pour m'avoir aidé :slight_smile:

LiquidCrystal_I2C-master.zip (20.1 KB)

bilbo83:
Bonjour,

J'utilise également cet afficheur.
Je n'ai jamais pu le faire fonctionner en I2C avec ma carte DUE.
En cherchant à résoudre mon problème je suis tombé sur plusieurs posts évoquant celui du premier caractère affiché.

En voici un parmi d'autres:
arduino uno - LCD 16*02 I2C shield only shows first character printed - Arduino Stack Exchange

Le problème semble venir des librairies

bonsoir
c'est bien possible
Je me souviens lors de mes premieres utilisations avec ces petits modules "LCD/I²C" avoir eu des problemes de lib
perso j'utilise cette lib

Oui Artouste tu as raison.
Je l'ai aussi téléchargée.
Je l'ai analysée, pour moi c'est la plus complète.
Elle s'adapte à plusieurs type d'interfaces et d'afficheurs.
Mais il ne faut pas être novice pour l'utiliser.
Dans mon cas, DFR0154 + Arduino DUE, rien à faire.
J'ai tout simplement (si on peut dire), dessoudé le module I2C, et je l'utilise en 4bits parallèles.
Avec la librairie "LiquidCrystalFast" et tout baigne. De plus, même si il y a quelques fils en plus, c'est beaucoup plus rapide.

Roger.

Bonjour.
j ai la solution
J avais le meme probleme que vous avec un lcdi2c 20x4
j ai test sur plusieurs uno, j ai toujours seulement 1er chiffre qui s affiche
J ai test different ide et differente librairie meme resultat
J ai test avec un ordinateur plus récents et la miracle ca marche..