i2c lcd 16x2 probleme

Hello,
I have a problem.
my stack displays just the first letter of my words.
where can the problem come from?
merci

Arduino nano
LCD 16x2 + i2c

Could you post a sample of the lines used to display the words please ?

notice: you posted in the french part of the forum

Bonsoir

sur un forum francophone pourquoi causer étranger ?
pour faire travailler nos méninges ?
pour nous faire admirer ta maitrîse de l'anglais ?

C'est peut être un mec perdu ?

J'aurais du le rediriger : ICI

oui je suis perdu pauvre moi XD désoler pour le dérangement je pensais être sur un autre forum arduino.

le code en question est celui-ci :

//YWROBOT
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup()
{
lcd.init(); // initialize the lcd
lcd.init();
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(3,0);
lcd.print("Poutine");
lcd.setCursor(2,1);
lcd.print("Staline");

}

void loop()
{
}

Pourquoi deux fois lcd.init();?

Important : quelle librairie est utilisée ?

Je pense que l'erreur était de mettre à la fois Poutine et Staline sur un même écran : l'esprit de ce dernier ne l'a pas supporté et hante dorénavant le display. La solution, s'il est encore temps, tient plutôt de l'exorcisme à mon avis...

En admettant que la librairie utilisée soit NewLiquidCristal :

Les constructeurs de la librairie :

LiquidCrystal_I2C (uint8_t lcd_Addr);
LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t backlighPin, t_backlighPol pol);
LiquidCrystal_I2C( uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs);
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t backlighPin, t_backlighPol pol);
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 );
LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t backlighPin, t_backlighPol pol);

Le code de Wilfried :

LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

Le constructeur correspondant à son instanciation :

LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t backlighPin, 
                                     t_backlighPol pol = POSITIVE)

Ce qui revient à dire : adresse=0x27, backlight=16, pol=2

Et ensuite :

lcd.init();                      // initialize the lcd

A aucun moment on ne donne à la librairie le nombre de colonnes et de lignes.

Ce qu'il faut faire :

LiquidCrystal_I2C lcd(0x27);

//dans setup:

  lcd.begin(16,2);

Oui, mais si c'est Arduino-LiquidCrystal-I2C-library de fdebrabander, le constructeur est :

LiquidCrystal_I2C(uint8_t lcd_addr, uint8_t lcd_cols, uint8_t lcd_rows, uint8_t charsize = LCD_5x8DOTS);

Par contre, la méthode init n'existe pas, c'est begin()

Exemple :

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup()
{
	// initialize the LCD
	lcd.begin();
}

void loop()
{ 
...

Oui mais imagine que tu aies les deux librairies installées ?

Tu compiles un exemple de la lib de fdebrabander, le compilateur compile peut être avec le LiquidCrystal_I2C.h de Francisco Malpartida NewLiquidCrystal.

Les deux portent le même nom LiquidCrystal_I2C.h.

Tu te prend une erreur de compilation, tu appelles lcd.init() en croyant bien faire.
Plus d'erreur de compilation mais ça ne marche pas.

Explications : LCD-i2c-incompatibility

Il faut donc savoir quelle(s) bibli(s) est(sont) installée(s). Il en existe peut-être encore d'autres avec le même nom pour le fichier .h et qu'on a pas identifiées...

Le LiquidCrystal_I2C c'est la jungle.
Je n'ai jamais vu un merdier pareil.

J'utilise uniquement la librairie de fdebrabander et je n'ai installé que celle-là, et surtout aucune autre.

Moi j'ai laissé tomber ces displays au profit des OLED...