sto raccogliendo dati per un progetto con arduino.
una info che non ho trovato è che distanza max si può coprire coi cablaggi, quali sono i problemi che si incontrano, e quali gli accorgimenti da adottare.
mi spiego meglio: qualunque tipo di connessione ha in genere delle specifiche max di distanza: la fibra ottica fa km, l'adsl molte centinaia di metri, eth credo sia sulle molte decine di metri, i cavi usb mi pare da specifiche possano essere usati fino a 1.5m, il segnale hdmi fa credo un paio di metri. Oltre queste distanza ci sono problemi e/o bisogna ricorrere ad accorgimenti (schermature, se non ripetitori di segnale).
premesso ciò, arduino come sta messo? si può attaccare un LM35 con 30m di cavo che va a spasso per le canaline di casa, o raccoglie interferenze tali da far esplodere arduino? si può collegare un led a 50m di distanza? e un lcd a 5m?
a parte l'ovvio rispetto degli isolamenti, delle norme CEI, ecc ecc. dal punto di vista di arduino e cioè del segnale e dei disturbi convogliati, ci sono problemi e se si (temo di si.... :D) che accorgimenti o soluzioni si possono adottare?
Come principio fondamentale, i cablaggi con le logiche andrebbero tenuti il piu corti possibile, compatibilmente con il tipo di segnali ... se metti una sonda con uscita analogica collegata con 30 metri di cavo, non solo arduino, ma qualsiasi tipo di logica captera' talmente tanti disturbi da quei metri di cavo, da rendere inaffidabile la lettura ...
Se proprio serve collegare dispositivi a lunga distanza, ci sono metodi migliori ... ad esempio, seriale o RS485 o RS422 per i dati digitali, o current loop per segnali analogici a lunga distanza ... e se c'e' da azionare e leggere parecchia roba, magari valutare l'opportunita' di usare un secondo arduino o uno standalone come "slave" ... dipende tutto da quello che ci vuoi fare, ovviamente ...
@Etemenanki
diciamo che sto cercando di capire cosa si può fare, e poi vedrò che fare!!!
a parte un controllo tapparelle, (ma che c'è già centralizzato in un solo punto con i suoi relè, e che si tratta solo di comandare in bassa tensione), stavo valutando che altri giochini posso ipotizzare con arduino, che non siano confinati allo spazio di un foglio A4, per cui la distanza dei segnali è un elemento utile.
cmq, per comandi "lunghi", come pulsanti o led che magari sono a un paio di metri in un ambiente "disturbato" da altri cavi in alternata (non connessi in alcun modo, ma che emetteranno i loro campi em) che precauzioni bisogna prendere? avevo sentito che spesso si usano condensatori per mettere a massa i pin cui sono collegati questi comandi, ma non ho capito lo scopo...
@uwefe il mio è un discorso generico. del tipo: per comandi/pin digitali meglio stare sotto i 50cm, se + lungo usare cavo schermato, ma se oltre 2m usare i2c con doppino ritorto.... per l'analogico il cavo fa resistenza queindi max 20cm...
informazioni così
un Lm35 l'ho collegato ad arduino con circa 4 metri di cavo schermato e sembra funzionare bene, con cavi lunghi devi collegare all'LM35 un condensatore e non ricordo cosa altro come indicato sul datasheet.
Idem per un pulsante, ho usato anche un 4 metri di cavo sempre schermato condiviso con 4 uscite PWM a 21V, ma per collegarlo ad arduino ho usato un fotoaccopiatore, con la I2C sempre con cavo schermato ho utilizzato circa 50cm, di altre esperienze al momento non ne ho, spero che queste ti siano utili
-zef-:
... con la I2C sempre con cavo schermato ho utilizzato circa 50cm ...
... e già sono tanti. Considera che è nato com bus per le comunicazioni locali tra integrati sullo stesso stampato ... non per essere portato "a spasso" con dei cavi
Volendo, comunque, per tutti i bus, esistono dei chip che permettono di estendere le distanze ...
... incluse quelle del I2C
infatti, l'ho specificato proprio in quanto avendo letto che al massimo si potevano utilizzare connessioni di un 20cm trovo strano che anche se schermato funzioni con ben 50 cm di cavo! Sarà che sono solo due periferiche I2C collegate, che sono un BPM180 e un TCS34725, ma solo quest'ultimo è collegato a 50cm di distanza
-zef-:
un Lm35 l'ho collegato ad arduino con circa 4 metri di cavo schermato e sembra funzionare bene, con cavi lunghi devi collegare all'LM35 un condensatore e non ricordo cosa altro come indicato sul datasheet.
Idem per un pulsante, ho usato anche un 4 metri di cavo sempre schermato condiviso con 4 uscite PWM a 21V, ma per collegarlo ad arduino ho usato un fotoaccopiatore, con la I2C sempre con cavo schermato ho utilizzato circa 50cm, di altre esperienze al momento non ne ho, spero che queste ti siano utili
ok, quindi con doppino schermato ritorto qualche metro forse si fa.
non ho ben capito cosa hai fatto col pulsante e i pwm...
invece se si deve andare oltre, tipo misurare temp di un caldaia (che in genere è almeno a un piano di distanza) o l'umidità del terreno (pure lì, magari sono 10m), o cose di 'sto genere è meglio avere un altro arduino col suo alimentatore, e poi un bus?
gpb01:
... e già sono tanti. Considera che è nato com bus per le comunicazioni locali tra integrati sullo stesso stampato ... non per essere portato "a spasso" con dei cavi
Volendo, comunque, per tutti i bus, esistono dei chip che permettono di estendere le distanze ...
... incluse quelle del I2C
Guglielmo
per roba + lunga che tipo di connessioni si possono usare (cablate)?
e queste "estensioni" che genere di raggio permettono? cmq avere un ripetitore è sempre una rottura perchè va alimentato...
cinquevolt:
non ho ben capito cosa hai fatto col pulsante e i pwm...
sullo stesso cavo schermato insieme ai fili per il pulsante ci sono i fili dove piloto dei led in pwm e all'inizio pensavo che il pwm vista anche la tensione di 21V. potesse in qualche modo creare interferenza con il filo del pulsante.
cinquevolt:
per roba + lunga che tipo di connessioni si possono usare (cablate)?
Nessun pin dovrebbe essere collegato a filature superiori a pochi dieci centimetri, anche per semplici contatti o comandi a bassa velocità questi fili sono comunque "antenne riceventi".
Non devono esserci accoppiamenti induttivi/capacitivi o scintillazioni nelle vicinanze.
Tutto quello che si allontana deve essere disaccoppiato otticamente (meglio se con una tensione ausiliaria separata 12..24V).
Tutte le masse che collegano varie parti non devono passare attraverso Arduino, ma arrivare ad esso da un solo punto.
Un semplice current loop a 9600 bps optoisolato su doppino ritorto supera il mezzo chilometro senza problemi.
-zef-:
sullo stesso cavo schermato insieme ai fili per il pulsante ci sono i fili dove piloto dei led in pwm e all'inizio pensavo che il pwm vista anche la tensione di 21V. potesse in qualche modo creare interferenza con il filo del pulsante.
ah, ok, un multicoppia, quindi. Tipo un cavo ethernet. capito grazie
Claudio_FF:
Nessun pin dovrebbe essere collegato a filature superiori a pochi dieci centimetri, anche per semplici contatti o comandi a bassa velocità questi fili sono comunque "antenne riceventi".
si, infatti questo era il mio dubbio. Meglio saperlo prima (e progettare il tutto tenendolo presente) che cercare di capire perchè non funziona dopo.
Non devono esserci accoppiamenti induttivi/capacitivi o scintillazioni nelle vicinanze.
scintille ok (tipo contatti relè), ma non capisco "accoppiamenti induttivi/capacitivi". che vuol dire (scusa l'ignoranza... ;))
Tutto quello che si allontana deve essere disaccoppiato otticamente (meglio se con una tensione ausiliaria separata 12..24V).
ok, cioè alimentata da una sorgente diversa. annotato.
Tutte le masse che collegano varie parti non devono passare attraverso Arduino, ma arrivare ad esso da un solo punto.
nel senso essere attaccate ad un solo gnd di arduino e non una al pin 14 e l'altra ai pin power (tra Vin e 5V)?
Un semplice current loop a 9600 bps optoisolato su doppino ritorto supera il mezzo chilometro senza problemi.
cinquevolt:
ma non capisco "accoppiamenti induttivi/capacitivi"
Vicinanza fisica di campi elettrici o magnetici, ad esempio tra fili che corrono appaiati in canaline, ma anche tra parti di circuito, questo il caso che mi è capitato recentemente forum.arduino.cc/index.php?topic=488611
nel senso essere attaccate ad un solo gnd di arduino e non una al pin 14 e l'altra ai pin power (tra Vin e 5V)?
Se si tratta di LED/Pulsanti o comunque qualcosa che fa parte del circuito locale non ha importanza (purché non assorba troppa corrente), se sono collegamenti verso altre schede o verso sezioni di potenza allora si parte a stella dall'alimentatore e si portano tante masse e tante Vcc alle varie sezioni.
Quello è un current loop analogico con conversione DAC/ADC. Il current loop digitale è molto più semplice, ad esempio questo che in pratica è simile a un'interfaccia MIDI: