salve , ho un problema con lcd arduino uno 16x2 ho acquistato,, IIC / I2C Modulo Interfaccia Seriale Per Display lcd 1602 arduino , per togliere una marea di fili , ho attaccato i fili come da manuale ho inserito il software ma in arduino non compare nessuna scritta solo la prima riga con 16 quadratini, c'è qualcuno che ha avuto il solito problema. grazie
allego il software
#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");
wirefree:
si scusate è il linke del modulo che ho acquistato
Quale link ? Non hai messo nessun link !
Comunque, con la libreria I2C non è che colleghi i 4 fili e tutto è okay.
I2C vuole sapere l'indirizzo I2C del dispositivo, inoltre NON tutti i modulini I2C sono configurati allo stesso modo.
Se il venditore non ti dice qual'è l'indirizzo I2C puoi scoprirlo con lo sketch I2CScanner
cerco di rispondere alle vostre domande , inazitutto grazie del vostro supporto,
uso arduino uno compatibile
i collegamenti su arduino erano invertiti, "scusate la mia distrazione", infatti ora con lo sketch I2CScanner da come risultato 0x27
le resistenze sul bus sda e scl non lo messe
il risultato è lo stesso , si vede la prima riga con 16 rettangoli neri e si accende e si spende la retroilluminazione
lo sketch che utilizzo è questo:
#include <Wire.h> #include <LiquidCrystal_I2C.h>
// Imposta l'indirizzo del display a 0x27 con 16 caratteri per 2 linee
LiquidCrystal_I2C lcd(0x27,16,2);
void setup()
{
lcd.init();// inizializza il display
lcd.backlight();//accende la retroilluminazione
}
void loop()
{
// Scrittura dei testi sul display
lcd.setCursor(0, 0);
lcd.print("1234567812345678");
delay (1000);
lcd.setCursor(0, 1);
lcd.print("ABCDEFGHILMNOPQR");
delay (1000);
lcd.setCursor(0, 0);
lcd.print("8765432187654321");
delay (1000);
lcd.setCursor(0, 1);
lcd.print("8888888888888888");
delay (1000);
}
quando passi l'indirizzo 0x27, e la dimensione, poi ci sono altri parametri da passare se il modulino collega i pin del chip PCF8574 in maniera non "standard" o come la libreria se lo aspetta.
Io ho 3 moduli simili al tuo e due usano pin collegati in maniera diversa.
Uso libreria diversa, quindi scrivo:
nella setup: lcd.begin(16,2); (la dimensione la dichiari nella begin)
poi per uno di quei moduli scrivo:
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
mentre per l'altro
LiquidCrystal_I2C lcd(0x27, 4, 5, 6, 0, 1, 2, 3, 7, NEGATIVE); // mjkdz module
Ho completato ora mio post precedente.
Prova: LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
a me funziona ed è quello che suggeriscono al link che ti ha dato @Sukko
scusate non sono molto esperto mi sono perso potete corrreger voi il software inserendo le istruzioni nel modo corretto mi da errrore e non me vengo fuori :