Problème d'affichage Variable LCD I2C

Bonjour à tous,

J’ai fait l’acquisition d’un nouvel écran LCD 16x02 avec bus I2C. En essayant de le faire fonctionner (avec un Arduino UNO), je me suis rendu compte qu’il n’affichait que le premier caractère de ce qu’il doit afficher. J’ai pourtant essayé les exemples fournis avec la librairie LiquidCrystal_I2C.h, mais sans succès. J’ai aussi essayé de faire clignoter le rétro-éclairage, d’afficher du texte à différents endroits (évidemment, seulement la première lettre, sinon ce n’est pas drôle), avec succès, ce qui me laisse penser que la librairie que j’utilise est la bonne.
Ainsi, après plusieurs heures de recherches, j’ai trouvé une solution qui n’en est pas vraiment une : faire appelle à une fonction qui affiche lettre par lettre. Cependant, cela ne fonctionne pas pour des variables dont la valeur aurait au moins deux chiffres, alors que ce sont justement ce type de variables que je dois afficher!!! C’est donc pour cela que je me vois obligé de ré-ouvrir un article sur ce sujet, et vous m’en voyez désolé.

Pour information:
L’écran que j’utilise est celui-ci.
Je tourne sur Windows 10-64 bits

Je remercie d’avance tous ceux qui prendront le temps de me répondre, et joins mon code dans ce post.

/* www.osoyoo.com IC2 Liquid Crysal Testing program
   program tutorial : http://osoyoo.com/?p=72
   Copyright John Yu
   */
   
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
 
LiquidCrystal_I2C lcd(0x3F,16,2);  // l'adresse de mon écran n'est pas 0x27...
 
void setup()
{
  lcd.init();                     
  

 
// set cursor to first line
lcd.setCursor(0, 0);

// Print a message to the LCD.
  lcd.backlight();
}
 
void loop()
{
  lcd.setCursor(7,1);
  lcd.print(21);
}

void lcdprint(String s) {
  for (int  i = 0; i < s.length(); i++)  lcd.print(s[i]);

}

Bonjour,

Essaies cette librairie.
Elle fonctionne correctement chez moi.

Merci Beaucoup Kamill, elle fonctionne aussi parfaitement chez moi !!!