Lunghezza cavo link Software serial

Salve a tutti!

Poichè ho la necessità di utilizzare un sensore termometrico che utilizza il bus I2C, dovendo disporre di un cavo di almeno 3/5 metri, stavo cercando una soluzione alternativa considerando che tale bus non dovrebbe consentire trasmissioni così lunghe.

Ho pensato allora di utilizzare un Arduino nano di quelli cinesi che costano due euro da collegare al sensore e poi per mezzo di un link software serial ricollegarmi all'Arduino centrale.

Quanto posso distanziare i due Arduino? 3/5 metri posso coprirli senza problemi?

Inoltre posso utilizzare del semplice doppino telefonico oppure meglio utilizzare del cavo schermato tipo audio?

Vorrei evitare di complicare le cose con l'rs485 se possibile.

Grazie mille a tutti!

Eviterei di usare I2C per tratte superiori al metro, a causa dei disturbi che potrebbero rovinare la ricezione e della capacità parassita del cavo.

Qualcuno dichiara di aver raggiunto anche i 10m abbassando la velocità da 400 a 100 kbit/s e ponendo il resistore di pull up a 1.8k, ma non lo consiglio.

Molto più affidabile una comunicazione RS485 con un transceiver SN75176.

La seriale TTL dovrebbe coprire 3-5 metri. Dubito che un Nano sottocosto funzioni in modo affidabile.

Se come dice cyberhs aggungi 2 convertitori RS485 puoi corire fino 1000m. Attenzione normalmente é half duplex (trasmissione solo in un adirezione alla volta) e necesita una gestione del traffico con richiesta e risposta.
Anche lo standard RS232 copre 100m (mi pare). Anche qua ti servono 2 integrati.
Il I2C puó coprire fino 30 m se usi 2 I2C expander.

Ciao Uwe

Grazie mille, proverò inizialmente la soluzione iniziale, nella speranza che i dubbi di Uwefed non si verifichino per distanze corte!

Secondo voi questo convertitore funzionerebbe?

http://www.ebay.it/itm/MAX485-module-RS-485-TTL-to-RS485-MAX485CSA-Converter-Module-For-Arduino-/201279061403?pt=LH_DefaultDomain_0&hash=item2edd2abd9b

La trasmissione su RS485 viaggia su due o 4 cavi?

EDIT: ovviamente per far comunicare due Arduino vanno usati a coppia, no?

Leggiti questo tutorial:

uwefed:
La seriale TTL dovrebbe coprire 3-5 metri.

Si, con la seriale UART, non importa se TTL o MOS, è meglio non andare oltre i 4-5 metri di cavo, e deve essere schermato.

Anche lo standard RS232 copre 100m (mi pare). Anche qua ti servono 2 integrati.

La vecchia RS232 era data per 15 metri (50 piedi) con velocità massima di 9600 ps, cavo schermato.
Con l'introduzione della variante RS232D non c'è più un limite di lunghezza ma di capacità, esattamente come per la I2C, la connessione non deve superare la capacità complessiva, data da cavo e device, di 2500 pf con velocità dati massima di 19200 bps, il che ci porta attorno ai 50-100 metri a seconda del tipo di cavo utilizzato.

GianfrancoPa:
La trasmissione su RS485 viaggia su due o 4 cavi?

Per la 485 bastano solo due cavi, collega A con A e B con B, occorrono due resistenze da 120 ohm messe ai capi opposti della linea, in questo modo l'impedenza globale della linea è 60 ohm.
Con la 485 non occorre collegare GND, anzi può essere deleterio se i due circuiti utilizzano alimentazioni diverse, il cavo deve essere un doppino intrecciato, va benissimo il cavo utp di rete oppure quello telefonico, sebbene la RS485 è abbastanza immune al rumore può essere utile utilizzare un doppino intrecciato con calza, questa va connessa esclusivamente al GND di uno dei device agli estremi della linea.

Facendo delle prove, sono riuscito a collegare due moduli Arduino cinesi usando la libreria SoftwareSerial.

Ho fatto la prova utilizzando due cavi telefonici da 3 metri ciascuno utilizzando una accoppiatore RJ11 come quello in foto:

Alla fine i modulini riescono a comunicare tranquillamente senza intoppi. non ho provato cavi con lunghezze superiori.