Ciao a tutti,
vorrei far funzionare, come da titolo, un lcd 16x02 con il modulo I2C.
Eseguendo lo sketch d'esempio della libreria LiquidCrystal_I2C il display stampa sempre e solo la prima lettera nella riga 1.
questo lo sketch:
//DT Studio
//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
// Print a message to the LCD.
lcd.backlight();
lcd.print("Hello,DT Studio!");
}
void loop()
{
}
Quindi, con questa stringa:
lcd.print("Hello,DT Studio!");
in realtà mi stampa solo la prima lettera, ovvero 'H'.
Facendo una ricerca sul forum ... visto che se ne è parlato decine e decine di volte ...
... è un buco nella libreria (probabilmente vecchia) e basta un piccola correzione.
//DT Studio
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup()
{
lcd.begin(16,2); // initialize the lcd
// Print a message to the LCD.
lcd.setBacklightPin(3,POSITIVE);
lcd.print("Hello,DT Studio!");
lcd.setBacklight(HIGH);
lcd.home();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("123456789101112");
lcd.setCursor(0,1);
lcd.print("@12345678912989");
}
void loop()
{
}
il problema adesso è che non mi si accende la retroilluminazione...leggevo da qualche parte che il pin 3 è quello sulla retroilluminazione..come posso risolvere?
Il pin 3 è per il contrasto, per la retroilluminazione
devi usare il 15 e 16 e vedere se ci vuole una resistenza in serie.
il pin 3 è riferito all'Arduino e viene utilizzato per accendere la retroilluminazione.
Devi collegare il pin 3 ad un transistor, tramite un'apposita resistenza di base e una resistenza in serie al led, per poter accendere la retroilluminazione del display altrimenti potresti bruciare l'arduino.
Ciao
Gianky00:
il problema adesso è che non mi si accende la retroilluminazione...leggevo da qualche parte che il pin 3 è quello sulla retroilluminazione..come posso risolvere?
Eh? Pin per la retroilluminazione? Scusa ma il tuo display non è I2C?
E poi anche la sintassi del costruttore è come se fosse la normale LiquidCrystal ossia per i display senza I2C:
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7);
Per me è:
LiquidCrystal_I2C lcd(0x27,16,2);
Insomma, se hai un display I2C devi usare la libreria per I2C, quale usi esattamente (autore e versione)?