Modulo I2C per Display 16x2

Buonasera , volevo sapere se qualcuno gli è capitato di collegare un Arduino RP2040 Connect con un display 16x2 con modulo I2C, il mio modulo I2C ha i tre ponticelli aperti (A0, A1, A2) e il codice del chip è PCF8574T, perciò leggendo un pò su internet so con sicurezza che questo è indirizzato 0x27 ed è quello che vuole l'RP2040 ma non riesco a fargli visualizzare niente.

Grazie

Credo dipenda molto dalla libreria che usi. Quale hai usato ? Metti un link se c'e' l'hai
Inoltre se non ricordo male, alcune librerie vogliono sapere i pin di come il chip PCF è collegato e non tutti i modulini sono uguali.

Buonasera, riguardo alla libreria I2C dopo aver peregrinato su internet, ho visto che potevo scaricare la libreria LiquidCrystal_I2C di Frank de Brabander.

Se vuoi il codice che ho provato a scrivere te lo scrivo

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

// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup()
{
// initialize the LCD
lcd.begin();

// Turn on the blacklight and print a message.
lcd.backlight();
lcd.print("Hello, world!");

}

void loop()
{
// Do nothing here...
}

Questo è uno degli esempi forniti dalla libreria, se non funziona il problema è hardware.

Ciao.

Non ho un RP2040 quindi non so se sia vero, ma cercando un poco in giro ho letto che invece della libreria standard di De Brabander sarebbe necessario usare la hd44780 di Bill Perry che estende quella standard.

Una prova la farei prima di dare la colpa all'hardware... :wink:

Ok grazie vi farò sapere

io rp2040 la ho, mi mancano display e I/O shift level. Anche per questo motivo ho pensato ad un problema hardware, ad esempio la mancanza di I/O shift level, che non ha menzionato.

@saramarcomoroni

Hai usato degli I/O shift level?

Io penso proprio che siano necessari perché rp2040 lavora a 3.3V mentre il display lavora a 5V,

Ciao.

Sempre consigliabile quando ci sono device a 3.3V (la RP2040) ed a 5V (LCD), lo davo per scontato.

Si li ho usati

Allora aspettiamo @gpb01 nella speranza che lui abbia già provato a collegare un rp2040 al display via i2c, di sicuro l'hardware lo ha.

La wire del core per rp2040 dovrebbe bastare a fare il lavoro e non mi viene in mente nulla che debba essere fatto in modo specifico per rp2040.

Quale scheda hai?

Che pin hai usato?

Perchè rp2040 ha due i2c, i2c0 e i2c1.

Ciao.

Buonasera, si ho usato lo shift level, ma niente il display 16x4 non visualizza niente, ho sostituito lo shift level con al posto 2 resistenze da prima da 10K poi ho provato con 4,7K (1 tra 3,3V e SDA ed 1 tra 3,3V e SCL) collegando SDA E SCL del display direttamente a SDA e SCL di Arduino RP2040. La Libreria è hd44770.

Il problema riguarda pure la sostituzione del display con OLED 0,96" anche in questo caso ho lasciato le resistenze collegate ma non riesco a fare comunicare sto benedetto display (meglio se LCD 16X4) con Arduino RP2040 Connect

Portiamoci avanti, in attesa posta un link alla tua schedina I/O shift level, perché ricordo che @gpb01 ha detto che ci vogliono dei specifici I/O shift level per i2c non tutti vanno bene.

Nel collegamento diretto senza shift level non ci sono rischi di guasti. Il display ovviamente è alimentato a 5V giusto?

Ciao.

Non ho capito vuoi una foto dello shift level?

Si il display 16x4 è alimentato con 5V con alimentatore esterno

Allora il problema potrebbe essere nel mancato collegamento dei GND. Il GND dei 5V deve essere in comune con il GND della nano. Se manca questo collegamento non può funzionare, collegali e usa lo shift level.

Ciao,

... scusate il ritardo ... :grin: ... per il bus I2C li fanno apposta ... QUESTI ... allo stesso prezzo (o forse anche meno), su Aliexpress, te ne danno 10 e ... li uso da anni e vanno benissimo :grin:

No, mai collegato un LCD 16x4 alla RP, ma, sicuramente, i level shifter sono d'obbligo.

Guglielmo

Buongiorno, ti dico cosa sto facendo giusto per capire se mi è sfuggito qualcosa tipo incompatibilità su qualche libreria e componente, sto creando il codice per un dispenser di crocchette,

Componenti utilizzati:

Arduino RP2040 Connect

Driver x motore passo passo A4988 (3,3V Vdd Ms1 e Ms2)

Motore Passo Passo Mitsumi 24V(recuperato da vecchie stampanti)

Sensore ultrasuoni SRF05 (da 5V esterno)

Vorrei aggiungere questo display LCD16x4

Per l'alimentazione del motore ho usato un alimentatore 24V 5A, per l'alimentazione dei 5V ho aggiunto un step down per regolare la tensione a 5V, ho collegato tutti i GND insieme (in questo caso controllo meglio ma al display si accende la retroilluminazione è solo che non trasmette, questo problema si presenta anche con un display 0,96" ma tocca accecarsi)

E poi per ultimo ho aggiunto l'App con Blink (RP2040 ha codice nativo) e questo lo devo testare però ho aggiunto già un pulsante virtuale e il motore gira appena lo premo, forse poi aggiungerò qualche pulsante fisico e potenziometro.

Adesso mi sono bloccato su questo display che se rimane non fattibile lo tolgo e faccio da App direttamente

Questo è quanto

Continuo a NON vedere uno schema dei collegamenti (e non chiacchiere), ne vedo citati i "level shifter" ... :roll_eyes:

Guglielmo

Buongiorno, si anch'io ho acquistato tempo fa questi shift level su AliExpress ma siccome è la prima volta che li sto usando mi è venuto dubbi sul loro funzionamento e allora ho provato a toglierlo e mettere due resistenze da 4,7k (una tra SDA e 3,3V ed una tra SCL e 3,3V di Arduino RP2040) collegando SDA e SCL del display direttamente ad Arduino, secondo la tua esperienza potrebbe essere un problema di incompatibilità o di hardware (qualche collegamento sbagliato)?

P.S. se ho risposto personalmente sul FORUM a qualcuno di voi al quesito che ho postato gli altri riescono a vederlo comunque o devo scrivere sempre ad un nuovo argomento?

Cioè come sto facendo adesso, ho risposto a lei ma lo vedranno gli altri quello che ho scritto adesso?

Grazie

Scusi, Ve lo mando appena possibile

Si, certo, i post sono TUTTI pubblici :slightly_smiling_face:

Guglielmo