il codice che ho scritto è il seguente:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,16,2);
void setup()
{
lcd.init();
lcd.setCursor(0,0);
lcd.print("Hello, world!");
}
void loop()
{
}
ho inserito l’indirizzo 0x3F dopo averlo trovato con lo sketch i2c_scanner, lcd si accende ma non compare nessuna scritta, inoltre mettendo il contrasto al massimo compare solo una riga di quadretti
I quadretti servono per regolare il contrasto. Vuol dire che il display è alimentato ma non inizializzato.
Controlla collegamenti, saldature, fili volanti, ecc.
Lo schermo continua ad essere retroilluminato ma non mostra alcuna scritta, dove controllo se i pin da inserire nella funzione LiquidCrystal_i2C sono corretti ? Ho trovato il datasheet del PCF8574AT ma non ne vengo a capo. Vi invio una foto della scheda.
#include <Wire.h>
#include <PCF8574_HD44780_I2C.h>
PCF8574_HD44780_I2C lcd(0x3F,16,2);
void setup()
{
lcd.init(); // LCD Initialization
lcd.backlight(); // Backlight ON
lcd.clear(); // Clear the display
lcd.setCursor(0,0); // Set the cursor to col 0, row 0
lcd.print("Hello"); // Print the first word
lcd.setCursor(0,1); // Set the cursor to col 0, row 1
lcd.print("World!"); // Print the second word
}
void loop()
{
}
Ho letto su altri post che lcd dovrebbe spegnersi ed riaccendersi nel momento in cui Arduino viene riavviato o nel momento in cui viene caricato il codice ma a me rimane acceso.
Prima di dissaldarla proverei con una lente a verificare le saldature attuali. Mi è capitato un paio di volte di trovare delle bavette di stagno tra un pin e quello vicino (cineserie...) per cui è bastato rimuoverle per far funzionare tutto.
Ho verificato con il test i piedini della scheda i2c 2 o tre di questi erano in corto, una volta rimosso il corto ho ricollegato il tutto. Ora sembra che ogni volta che riavvio arduino lo schermo lcd si spegne e riaccende in una frazione di secondo, inoltre dopo ogni riavvio mostra simboli casuali solo sulla prima riga.
Il problema che riscontri, l'ho pure io sulla scheda lcd 1602 i2c.
Ho provato diverse librerie e vari Sketch come hai fatto tu, con nessun miglioramento al LCD.
Come il tuo, si accende solo una riga e varia chiaramente il contrasto regolando il potenziometro, ma nessuna lettera o numero compare facendo partire il programma.
Staccando i due ingressi, la retoilluminazione resta accesa.
Nel programma, c'è una riga di comando che dovrebbe spegnere la retroilluminazione, se facendo partire il programma questa non si spegne, probabilmente non gira il programma.
Può darsi che ci sono problemi di libreria, anche se ora mai le ho provate tutte.
Il Sketch è troppo semplice e non da errori di sorta.
Riguardo alle saldature, questa mattina le ho guardate con la lente, non ho trovato corti.
Non so cosa dire di più
Attendo come te aiuto dal Gruppo.
Da i più smaliziati chiedo: è possibile testare LCD, visto che ha solo due ingressi staccato da Arduino?
Se una volta staccato il modulo I2C è un LCD come gli altri lo puoi testare effettuando tutti i collegamenti e la libreria LCD classica.
Cosa vuol dire che ha solo 2 ingressi? Il modulo I2C o LCD?
Io non ho un 1602A ma il “normale” 1602, ma uso ormai da tempo la libreria di marcoschwartz ossia QUESTA, e non ho avuto problemi di sorta. Se vuoi provarlo, verifica di aver CANCELLATO prima ogni traccia delle precedenti librerie con lo stesso nome (purtroppo questa cosa è sempre stato un problema…) dal tuo percorso di Arduino (sia la tua cartella dei progetti sia quella del CLI di Arduino, es. c:\Program Files (x86)\Arduino\libraries).
Per l’inizializzazione vedi questo esempio:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// SDA è connesso al pin analogico A4
// SCL è connesso al pin analogico A5
LiquidCrystal_I2C lcd(0x3F,16,2);
void setup() {
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("*TEST*");
delay(5000);
}
void loop() {
lcd.noBacklight();
delay(5000);
lcd.backlight();
delay(5000);
}
Provalo e vedi se sul display ti compare la scritta “TEST”, e se la retroilluminazione si accende e spegne con intervallo 5 secondi.
Le ho provate tutte, proverò anche il tuo Skecth di test e la libreria.
Grazie docdoc.
Mentre per Paolo mi spiego meglio: C'è il modulo LCD 1602 piu il modulo aggiuntivo Ic2 che è già montato alla vendita.
Mentre lo si usa cosi, in questa versione, se non contiamo i due fili di alimentazione +5v e massa, rimangono da collegare solo due fili. SDA e SCL alle porte 4 e 5 analogiche.
Chiarito questo, mi piacerebbe sapere se è possibile testare l' LCD senza Arduino collegando i due piedini
SDA e SCL a una tensione o una frequenza in modo da vedere se lui funziona anche se da numeri o caratteri strani.