Pilotare uno o più display in I2C

Salve amici di Arduino se voglio Pilotare uno o più display in I2C, con ---IC PCF 875---tramite Arduino. Quanto display al massimo posso pilotare con una scheda di Arduino ,e con questo metodo si possono pilotare anche Display LCD del tipo grafico?

Grazie

Se vuoi sapere quanti PCF8574 puoi collegare sul bus I2C, la risposta è 8 visto che hai 3 bit di address (A0, A1 e A2) e quindi puoi assegnare loro 8 indirizzi differenti, se non è questo che vuoi sapere ... allora non ho capito la domanda ... ::)

Guglielmo

:) grazie la seconda domanda e se posso pilotare lcd del tipo grafico, esempio otto con una scheda di arduino

Grazie

Se usi anche la versione PCF8574A allora 16 perché questa versione ha un altro indirizzo e utilizzando sia quello A che quello non A arrivi a 16. Non so dirti se riesci a far funzionare il BUS I2C con 16 integrati attacati.

In teoria é possibile usare un I2C expander anche per i display grafici ma spesso hanno anche interfaccie SPI e percui non serve un I2C Expander.

Ciao Uwe

Grazie quindi con una scheda Arduino posso comandare senza -- I2C expander-- uno o piu Display grafici , sapresti dirmi quanti?

grazie

Dipende da cosa intendi per display grafico… Se si collegano in I2C, in SPI o altro

Che Display Ti servono?

Ciao Uwe

>Salvo1969:

...se usi il bus I2C il limite è dato da : a) il numero di indirizzi disponibili. Ogni device I2C deve avere il suo indirizzo. b) dalla lunghezza (massimo 10-20 cm) e capacità dei cavi ... QUI più info.

... se usi il bus SPI il limite è dato da: a) tolti i pin in comune (MISO, MOSI, SCK), ogni device richiede un suo pin dedicato (CS) e quindi massimo il numero di pin di I/O che puoi usare per tale scopo. b) dalla lunghezza e capacità dei dei cavi. Essendo più veloce del I2C ... le limitazioni sono ancora più ferree.

Guglielmo

Inoltre devi anche considerare che ogni display, quelli grafici soprattutto, richiede qualche buffer in RAM, e su Arduino non è che se ne abbia granché da vendere...

Salvo1969:
:slight_smile: grazie la seconda domanda e se posso pilotare lcd del tipo grafico,

La risposta è ni :slight_smile:
Si perché da un punto di vista teorico puoi collegare tanti display quanti sono gli address disponibili.
No perché un display grafico non è l’ideale da far funzionare tramite I2C, troppi dati da passare e la I2C è abbastanza lenta, il risultato è che hai grossi di problemi di refresh e flickering.
Diciamo che si tratta di piccoli display, p.e. quelli Oled da 128x64 pixel, ovviamente monocromatici, un paio di display riesce a pilotarli tramite I2C, dipende anche da cosa vuoi visualizzare, di più rischi anche di mettere in crisi il processore se parliamo di un Arduino a 8 bit.

Esempio di applicazione grafica su un oled I2C 128x64 da 0.96"

gauge.jpg

:( Grazie per le risposte, quindi se utilizzo il bus I2C per comandare un oled I2C 128x64 da 0.96" sono limitato dall' indirizzi disponibili , e se ho capito bene devo tenere presente la distanza dalla scheda di arduino e oled I2C 128x64 che non deve superare i 20 cm?

Si la lunghezza dei cavi non deve superare qualche decina di cm, sopratutto se usi la I2C a 400 kHz per migliorare le prestazioni. Con un Atmega328 @16 MHz riesci a controllare decentemente una coppia di oled 128x64 su bus I2C, di più diventa quasi impossibile anche per via della limitata ram disponibile.

Grazie per la risposta, quindi come potrei fare se ad esempio Ho una parete di legno 5 metri di larghezza e 2,50m di altezza dove avrei circa 15 display distanti tra di loro, ha poter comunicare con Arduino non e possibile?

Display alfanumerici o grafici ? Se grafici tipo e risoluzione.

come faccio ha comunicate con una sola scheda di arduino attraverso cumunicazione seriale?

Doti ogni display di un Arduino Pro Mini (piccolo ed economico) e li fai parlare tutti su un bus RS485 multipoint (così non hai problemi di distanza e di più unità) con un Arduino centrale che fa da coordinatore.

Secondo me è la soluzione più funzionale …

Guglielmo

:) Grazie Guglielmo , quindi se ho capito bene metto una scheda di arduino come master e le altre schede di arduino come Slave e tramite Master comunico con loro che assualvolta sono collegati con i vari display?

pero col Protocol - RS485 non sono condizionato dalla distanza tra le schede?

L'RS485 NON è un "protocollo", ma una specifica a livello HW per il collegamento fisico. Una linea RS485 ben fatta va anche a oltre i 1000 mt ... puoi guardare QUI per alcune indicazioni.

Guglielmo

P.S.: Invece, senza impazzire con portcolli complessi per far parlare le varie schede, prova a guardare quello che trovi QUI ... leggero, semplice, sempre manutenuto e il cui autore è abbastanza presente e disponibile ;)

Non ci hai detto che display vuoi utilizzare e cosa vuoi far vedere e quanto spesso vuoi modificare il contenuto. Il RS495 é un bus che come ha scritto Guglielmo copre grandi distanze ma non trasmette una quantitá illimitata di dati.

Ciao Uwe