Lcd 1602A i2c PCF8574AT si accende solo la retroilluminazione

Buonasera ragazzi, sto provando a far funzionare un Lcd 1602A i2c PCF8574AT,
sto utilizzando la seguente libreria:

https://hmario.home.xs4all.nl/arduino/LiquidCrystal_I2C/

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.

Ho ricontrollato saldature e collegamenti con il tester sembra tutto ok, la scheda i2c è mh elettronics

Ho eseguito un ulteriore prova con quest’altra libreria:

https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/

e con il seguente codice:

#include <Wire.h> 

#include <LiquidCrystal_I2C.h>


//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  

void setup()   {
  
  lcd.begin(16,2);   
  
  lcd.setCursor(0,0); 
  
  lcd.print("Hello, world!");
  
}


void loop() {
 
}

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.

Hai provato a regolare il contrasto?
Spesso è a manetta e si vedono solo i quadretti...

Si contrasto regolato ma nulla.

Ho provato anche con quest’altra libreria:

con quest’altro codice:

#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()
{
}

Ma nessun risultato.

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.

Puoi fare uno schema esatto di tutti i collegamenti che hai fatto (... va bene anche un disegno fatto a mano) che proviamo a darci un'occhiata ?

Guglielmo

I collegamenti sono i seguenti:

  • VCC–>5V
  • GND–>GND
  • SDA–>PIN20
  • SCL–>PIN21

Ho un Arduino Mega.

Allego qualche foto.

Controlla le corrispondenze dei pin tra modulo I2C e LCD.

Dalla foto non si capisce, ma la schedina I2C è saldata all' LCD o solo infilata ?

E' saldata oggi provo a dissaldare il tutto ed a collegare l'lcd senza l'i2c per assicurarmi che sia funzionante,

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.

Ciao Valerio.

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?

Grazie.

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.

Valerio, come funziona il tuo?

l'hai sistemato.

Saluti.

Ma e' una UNO o una MEGA ?

rimangono da collegare solo due fili. SDA e SCL alle porte 4 e 5 analogiche.

  • VCC-->5V
  • GND-->GND
  • SDA-->PIN20
  • SCL-->PIN21