lcd seriale

buonasera, ho provato ha scrivere due righe sul display lcd ma visualizza solo la prima lettera di ogni riga,
idee su quale può essere il problema?


#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 
 
  // Print a message to the LCD.
  lcd.backlight();
  lcd.print("Test Display I2C");
  lcd.setCursor(0,1);
  lcd.print("Versione 1.0");
 
}
 
void loop()
{
}

che IDE stai usando, 1.6.7 ?

ciao !
sto usando Arduino 1.6.7

problema risolto, ho seguito questo consiglio.
http://forum.arduino.cc/index.php?topic=361411.0

sostituendo lo 0 con 1 nella libreria .cpp
ora sembra funzionare !!!! :slight_smile:

a quanto sembra è un bug della libreria.

Meglio che tu abbia già risolto, altrimenti ti consigliavo di installare Questa
La trovi ben spiegata anche quà .
Lo dico perche' gli adattatori I2C-LCD che si trovano in giro attualmente non sono compatibili con codesta libreria

In pratica:
Togli quella che hai ( la cancelli dalla cartella libraries )
Installi questa
Se il tuo LCD gia' funzionava con dei precedenti IDE devi solo cambiare

//LiquidCrystal_I2C lcd(0x20, 16, 2); // vecchia libreria
LiquidCrystal_I2C lcd(0x20, 4, 5, 6, 0, 1, 2, 3, 7, NEGATIVE); // nuova libreria

0x20 è l'indirizzo di default, può essere che il tuo sia diverso, e quindi cercalo con questo sketch I2Cscanner

e all'interno del void setup()

//lcd.init();      // Vecchio modo di inizializzazione
  lcd.begin(16, 2);  // Nuovo modo di inizializzazione ( 16,2 sono le Righe e colonne dell' LCD )
  lcd.backlight();

In pratica sono solo due righe da cambiare per usare questa libreria invece dell'altra.

Per completezza, metto l'immagine dell'interfaccia I2C che funziona con questi parametri

Mentre ad esempio quest'altra

ha questa inizializzazione
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
dove 0x27 può essere diverso. Cercare il valore con I2Cscanner