Quale scegliere fra le LiquidCrystal

Ho un problema lavorando con un LCD 1602 con modulo Ic2 con PCF8574AT.
Come libreria richiede la: LiquidCrystal.......

Le ho provate un po tutte le possibili in rete, magari anche non usandole correttemente.
Lo dico perche quando non sai esattamente quale usare, le cose si complicano in modo esponenziale.

In Internet, tutti i giorni, c'è il tizio che ne promuove una. Ma quale veramente è la più idonea nel mio caso indipendentemente sia l'ultima promossa?

Vediamo cosa si trova sul sito.
Un elenco delle librerie Zipate con i files letti passando sopra il mouse senza aprirle.

LiquidCrystal_I2C :files in cartella zip 15 3 file non vedenti 20Mb
LiquidCrystal_I2C-1.1.2 :files in cartella zip 10 20Mb
LiquidCrystal_Master :files in cartella zip 16 6 file non vedenti 40Mb
NewliquidCrista_1.3.4 :files in cartella 1044 1028 non vedenti 5.98Mb
LiquidCrystal _I2c :files in cartella 201 188 non vedenti 472Kb

Scritto sopra, cosa mi consigliate.

Lavoro con ELEGO UNO R3 Porte di OUTPUT A4 e A5

Non si schioda.

:slight_smile:
saluti

Prima di tutto bisogna usare l'IDE ultima versione e alcune lib che citi sono vecchie.
Poi, da gestione librerie IDE ultimo trovi la lib di marcoschwartz ossia QUESTA come ti aveva già indicato @docdoc
Questa lib però non accetta parametri per indicare come si collegano i pin del chip PFC8574 al display.
Devi avere la connessione chip/connettore display "standard".

Io uso anche questa di fmalpartida https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/
perchè permette di specificare come i pin del chip del modulino si collegano al display. Questo perchè ho un display 20x4 con connettore con disposizione diversa dal solito. Trovare quali parametri passare non è facile. Per il mio display ho trovato questa combinazione:

                   // addr,EN,RW,RS,D4,D5,D6,D7,Backlight, POLARITY                              
LiquidCrystal_I2C lcd(0x23, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);   // 20x4

MA SOLO per quel display+modulino.

io ho utilizzato la libreria che trovi in questo link per un LCD 16x4 che ho comprato con modulo I2C e non mi ha mai dato problemi,
spero ti sia utile
buon pomeriggio

http://www.mauroalfieri.it/download/LiquidCrystal_I2C1602V1.zip

alessandro-arduino:
io ho utilizzato la libreria che trovi in questo link per un LCD 16x4 che ho comprato con modulo I2C e non mi ha mai dato problemi, spero ti sia utile
buon pomeriggio
http://www.mauroalfieri.it/download/LiquidCrystal_I2C1602V1.zip

Sarà, ma è del 2012 e gli esempio sono ancora .pde e non .ino quindi roba molto vecchia.

Ciao Igor.

Che rottura questo problema delle librerie.

Qella che mi proponi l'ho scaricata, penso che ho tutte quelle in circolazione; vecchie e nuove.

Strano, la LiquiCrystal che mi proponi, l'altro giorno l'ho scaticata e, leggendo senza dizipare contiene 16 files e 6 nascosti, quella che ho scaricato oggi: 15 files e 5 nascosti.

Altra cosa, dove vedi la versione?

devo dizipare il pacchetto per avere questi dati?


Mentre nello Sketch ho:

#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
// Parametri dell LCD

per la undicesima volta riproverò La libreria che ho appena scaricato. Ma, mi sa che è difettosa la scheda.

I parametri che ho scritto vanno bene, no.
Sono quelli della scheda LCD con il convertitore.
Anche ipiedini di ingresso arduino sono i soliti usati A4 e A5.

Grazie
Ringrazio anche Alessandro per la dritta, purtroppo fatico perchè non sono un esperto. Lo uso da poco.

saluti

I parametri della fmalpartida e quelli della "standard" di marcoschwarz sono diverse.

  • MarcoSchwarz
    Dichiari l'oggetto con solo 3 parametri, non accetta altro (indirizzo, dimensioni):
    LiquidCrystal_I2C lcd(0x27,20,4);
    poi nel setup devi usare: lcd.init();

  • fmalpartida
    Dichiari l'oggetto SENZA la dimensione: da 1 parametro (indirizzo) a n parametri (indirizzo+pin)
    LiquidCrystal_I2C lcd(0x38); // Set the LCD I2C address
    poi nella setup devi usare lcd.begin(20,4); // dimensioni

Ho uno Sketch scritto come dici tu, è quello che ho riportato nella mia ultima, e include anche il comando
lcd.init();

Non sono sicuro se la libreria che ho usato è quella che mi proponi : LiquidCryistal_I2C-master

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

Anche perchè il programma non riporta il vero nome della libreria completo.

Come si fa a capire se è una o l'altra, sempre delle Liquid...

Comunque ora riprovo a caricare la libreria e controllo i dati.

Scusa Igor, ma sono un primino.

Non mi hai risposto se devo dizipare le librerie per vedere la loro versione.

A risentirci

erosb:
Non mi hai risposto se devo dizipare le librerie per vedere la loro versione.

Librerie non dell'Arduino Team, ma scritte da privati o da ditte come Adafruit.
Di solito dentro c'e' un file README.txt ma appunto il contenuto dipende da chi ha scritto la libreria.
C'e anche di solito un file library.properties con dentro la versione. Esempio:
name=RTClib
version=1.1.0
author=Adafruit
Poi di solito queste librerie sono su github, esempio: url=GitHub - adafruit/RTClib: A fork of Jeelab's fantastic RTC Arduino library
e li di solito trovi info su versione ed esempi.

Grazie Igor.
Ho riprovato controllando tutto per benino, ma non Funziona.

Credo che sia la scheda I2C che non funziona.

Vabbè, ne ordinerò una nuova.

Grazie delle delucidazioni riguardo le librerie
Saluti

Ci risentiremo :slight_smile:

Ah, per sicurezza carica lo sketch I2CScanner, con il display collegato ti dice l'indirizzo I2C reale.

A corollario: visto che la gran parte dei problemi deriva proprio dal fatto che le librerie, nelle varie versioni, sono tra loro incompatibili o comunque da utilizzare in ambiti specifici (versioni hw), che ne dite di andare su GitHub e di chiedere agli autori delle "varie" LiquidCrystal_I2C di CAMBIARE QUELLO STRACA%%O DI NOME SE CAMBIANO I METODI PUBBLICI??? :slight_smile:

docdoc, anche due se risolviamo il problema.

Quello da cambiare i nomi: d'accordissimo!!!!!!

Tra l'altro essendo cosi lunghi in tabella nel programma librerie non viene visualizzato il nome in modo completo e quindi non si sa cosa carichi.

Per Igor:

Ho provato lo scanner con la scheda in questione . Sorpresa, mi rende un 0x3f che in pratica "dovrebbe "essere in decimale 63. possibile, mi sembra strano il valore che emette scanner.
Mo lo provo

Complimenti Igor.

Il programma scanner che mi hai gentilmente passato è stato un grosso aiuto.
Riguardo al valore che rende scanner : 3f non è da convertire in decimale. Mi bagliavo io.

Nel mio caso il valore da inserire è proprio 3f e tutto magicamente, (si fa per dire) si è messo afunzionare.

Sinceramente non ci speravo più, anche perchè fra codici, librerie e Sketch vari di ogni sorta, non si smazzava nemmeno una virgola.

Lo sketch che uso per prova è quello che scrive TEST. il Valore comunque è (0x3f,16,2);

Che dire grazie e alla prossima

Per docdoc , non sono pratico di questi Karma, sarà perchè dopo i 70, diminuisce la comprendogna.

saluti al forum

Moduli I2C non mi fido mai di chi me li vende, verifico sempre l'indirizzo con i2cscanner :slight_smile:

nid69ita:
Moduli I2C non mi fido mai di chi me li vende, verifico sempre l'indirizzo con i2cscanner :slight_smile:

Concordo, mi è capitato stesso identico modulo i2c è sono diventato stupido perché uno dei due nonostante identici avevano indirizzi differenti, i2c scanner meglio usarlo sempre, per quanto riguarda la libreria io mi sono trovato bene con "LiquidCrystal I2C by Frank de Brabander Versione 1.1.2" la trovi nel gestore librerie, e per iniziare usare l'esempio Hello World che ti stampa a video qualcosa come YWROBOT, a patto che l'indirizzo sia giusto, funziona sempre.