Espansione I2C

Ciao a tutti,
ho letto e riletto un pò di post riguardo la comunicazione i2C, ed in quasi tutti menziona un limite di distanza tra gli expander (PCF8574, LCD ecc. ecc.) di 10/20 cm dal processore.
Ho realizzato con Arduino Uno, il comando e il controllo di tre Fan Coil, dove ad ognuno devo comandare le tre velocità e la valvola dell'acqua, premetto tutto questa già mi funziona a banco.
La mia idea era di fare tre espansioni da installare a bordo dei Fan Coil con i vari relè e il PCF8574,
il problema (come ho letto sul forum) è la distanza, volevo chiedervi se esisteva un "convertitore" o un "accrocchio" per poter comunicare con distanze superiori, ho letto della seriale RS485 ma mi dovrei creare tutto il codice di comunicazione e sinceramente sono troppo poco esperto per fare questo.
Grazie in anticipo a tutti
Ciao Giovanni

Devi usare dei bus Externder (da non confondere con il tuo 8574 che è un bus Expander) ...
... se ne è discusso ultimamente su un'altro thread, comunque, devi usare i P82B715 che, appunto, sono degli I2C bus extender.

Guglielmo

gpb01:
Devi usare dei bus Externder (da non confondere con il tuo 8574 che è un bus Expander) ...
... se ne è discusso ultimamente su un'altro thread, comunque, devi usare i P82B715 che, appunto, sono degli I2C bus extender.

Guglielmo

Grazie 1000 Guglielmo, mi studio il tutto
Ciao Giovanni

Allora se ho capito bene:
Devo mettere un P82b715 vicno ad Arduino con due resistenze in ingresso all'integrato da 4.7 KOhm sulle connessione SDA e SCL, inoltre due resistenze da 470 Ohm in uscita dell'integrato, e cosi nella scheda Slave del mio PCF8574.
Una domanda: nel caso dovessi usare uno scudo già in I2C ad esempio un LCD,le due resistenze da 4.7 KOhm devo metterle?
Scusate le stupide domande, ma sono un elettrotecnico non elettronico :cry: :cry:
Grazie ancora
Giovanni

Il bus I2C è praticamente un open-collector ... quindi, immagina che il transistor sia in grado di chudere verso massa, ma il collettore è aperto.

Per tenere il bus a livello HIGH, non essendoci nulla sul collettore, devi per forza mettere tu una rsistenza verso il +Vcc, ovvero una resistenza di pull-up e la cosa è valida sia per SCL che per SDA ... da qui le due resistenze che spesso trovi.

Quindi, NON è importante se sono già su usa scheda o se le metti tu, l'importante è che ci sia qualcuno che tira la linea verso il +Vcc (HIGH), visto che l'elettronica interna è in grado di tirare solo verso GND ovvero verso LOW :wink:

Guglielmo

P.S.: Consiglio la lettura di QUESTO tutorial su I2C :wink:

gpb01:
P.S.: Consiglio la lettura di QUESTO tutorial su I2C :wink:

Guida utile grazie