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
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
Guglielmo
P.S.: Consiglio la lettura di QUESTO tutorial su I2C
gpb01:
P.S.: Consiglio la lettura di QUESTO tutorial su I2C
Guida utile grazie