Superare i limiti del protocollo I2c

Buonasera a tutti! Premetto che sono un neofita come da mio post di presentazione quindi probabilmente dirò qualche fesseria... scusate in anticipo.

Dopo aver realizzato i progetti contenuti nello Starter kit di Arduino, mi sto dedicando ad un primo progetto "vero". Per questo progettino ho la necessità di installare un magnetometro a non meno di 3.00m da Arduino. Ho valutato cosa offre il mercato concludendo che questo tipo di sensore (almeno quelli che ho trovato io sui soliti siti di e-commerce) comunica con Arduino attraverso il protocollo I2C. Mi sono allora studiato tale protocollo "scoprendo" che hai dei limiti relativamente alla lunghezza dei cavi esistenti tra Arduino e periferica ... Ho letto decine e decine di pagine e post (anche su questo forum ma non solo) e, correggetemi se sbaglio, le conclusioni sono queste (quelle che ho compreso, molte per me sono ancora incomprensibili):

  • Con I2C non si possono utilizzare cavi più lunghi di poche decine di centimetri;
  • alcuni dicono che possono arrivare a diverse decine di metri utilizzando l'integrato P82B715;
  • altri suggeriscono il P82B96 (che penso faccia la stessa cosa);
  • altri suggeriscono di utilizzare cavi twistati;
  • alcuni suggeriscono l'uso di cavi coassiali schermati;
  • alcuni dicono di cambiare protocollo;

La conclusione è che dato il problema iniziale (magnetometro a 3.00 m da arduino) ho le idee confuse sulla direzione da prendere per arrivare ad una soluzione.

Qualcuno cortesemente mi può dare qualche dritta? Qualche consiglio? Almeno so dove indirizzare i miei sforzi.

Ringrazio anticipatamente per l'attenzione. Cordiali saluti, Giuliano.

O si mette anche l'Arduino vicino al sensore, o si mette un Arduino mini vicino al sensore, che invia dati seriali all'Arduino "principale" (e quindi un cavetto 3 poli per 15 metri va bene).

Cavi che hanno una capacitá maggiore sono peggio per I2C. Visto che cavi coassali o cavi twistati hanno una capacitá maggiore di un cavo normale sono da evitare con I2C. D'altro canto i cavi twistati sono cavi comunemente usati (Ethernet) e percui a basso costo.

Il P82B96 funziona con distanze piú linghe (capacitá del cavo 400pF al posto di 3000pF) Col P82B715 puoi mettere piú apparecchi sul bus I2C esteso (quello tra i vari P82B715) mentre col altro no (di questo non sono sicuro al 100%)

Ciao Uwe

Un grazie ad entrambi per il consiglio.

Adesso provo a studiare tutte e due le possibilità (utilizzo di un "mini" in adiacenza al sensore o impiego dell'integrato) e se non ne esco mi rifarò vivo.

Grazie Ciao, Giuliano