Non l'ho mai usata quindi certezze non posso dartene. Io userei la LiquidCrystal I2C; i comandi dovrebbero essere gli stessi, ma poiché faccio un uso abbastanza complesso delle stringhe non garantisco che la cosa funzioni senza intoppi.
Lo sketch l'ho scritto usando un LCD parallelo quindi sarebbe stato meglio usare quello, soprattutto se sei alle prime armi.
Si i pins sono A4(SDA) e A5(SCL). Sono mappati anche sull'altro connettore, dopo il ground ed in particolare gli ultimi 2 in fondo (virtualmente pin 16 e 17)
Io proverei inizialmente a modificare il codice così (ti metto solo le parti che devi modificare, con // prima della vecchia istruzione che ovviamente non va più eseguita:
Codice:
//#include <LiquidCrystal.h> //include la libreria di controllo del display LCD
#include <Wire.h> //include la libreria di gestione delle porte seriali, inclusa I2C
#include <LiquidCrystal_I2C.h>
Codice:
// initialize the LCD library with the references of the interface pins
//LiquidCrystal lcd(LCD_RS, LCD_RW, LCD_EN, LCD_D4, LCD_D5, LCD_D6, LCD_D7); //inizializza LCD
LiquidCrystal_I2C lcd(0x27,20,4);
Codice:
void setup()
{
//lcd.begin(20, 4);
lcd.init();
lcd.print("Electronic LeadScrew");
eventualmente (ma è solo una questione estetica) puoi anche eliminare tutte le assegnazioni dei pins del LCD, queste:
Codice:
//#define LCD_RS A2 //LCD RS pin
//#define LCD_RW A3 //LCD RW pin
//#define LCD_EN A4 //LCD enable pin
//#define LCD_D4 10 //LCD D4 pin
//#define LCD_D5 11 //LCD D5 pin
//#define LCD_D6 12 //LCD D6 pin
//#define LCD_D7 13 //LCD D7 pin
Prova e dimmi se funziona....