Leggendo qua e là e dovendo realizzare un impianto che ha dei problemi ad essere come dovrebbe essere in teoria, volevo creare una discussione per raccogliere consigli ed esempi su due aspetti che dovrebbero migliorare la stabilità del sistema Arduino, entrambi legati all'uso di cavi lunghi o molto lunghi:
un'alimentazione stabile e pulita
segnali analogici e digitali di input, puliti, senza disturbi e interferenze
A parte i cavi, di base usare cavi almeno twistati tipo le coppie dei fili cat5e, (meglio se schermati con la calza esterna collegata da una sola parte al GND?).
Per l'alimentazione ho letto questo consiglio:
è bene prevedere capacità e induttori di disaccoppiamento su i singoli utilizzatori per ridurre gli effetti negativi dell'immancabile "spazzatura elettrica" che viaggia su i cavi.
Per i motori con carico induttivo, usare filtri RC e/o varistori.
Per il miglioramento del segnale dai sensori con cavi lunghi, ho letto questi altri:
"il trucco è fare un convertitore tensione corrente o tensione frequenza [...] Il trucco è sempre lo stesso, amplificare il segnale, che lo fai con una tecnica o con l'altra non cambia il succo"
"per evitare disturbi o errate misure? [...] per essere sicuro oltre al cavetto schermato serio, un convertitore alta>bassa impedenza fatto con un operazionale"
Bene ottimo, bei consigli.
ehmm COME si fanno?
A voi la parola: qualche schema, spiegazione, caso pratico etc
Tipo:
A) cavo di alimentazione centralizzato 12V da 50m
B) sensore ingresso analogico collegato ad Arduino con 5-8m
C) sensore ingresso digitale collegato a 15m
Provo a dare un consiglio sull'alimentazione.
Il cavo di alimentazione molto lungo capta disturbi ad alta frequenza, sia continui, tipo: radio FM potenti e vicine, cellulari in chiamata, sia impulsivi, tipo: scintille in interruttori/deviatori che commutano carichi non puramente resistivi, come lampade a risparmio energetico, motori elettrici, relé, etc. Questi disturbi vengono attenuati dalla rete di filtraggio e dal riduttore di tensione dell'arduino, ma se sono forti possono bypassare il filtraggio e interagire con gli ingressi ad alta impedenza della scheda, o con il reset del micro.
Il primo provvedimento è tenere i cavi di alimentazione più corti possibile, perché più corti sono, meno disturbi captano e di minore intensità. Se ciò non è possibile a mio avviso occorre 'rinforzare' il filtraggio all'ingresso dell'arduino tramite 'celle' costituite da impedenze in ferrite tipo VK200 tipo queste, e da coppie di condensatori, uno ceramico da 100nF, e uno elettrolitico da 10uF possibilmente low esr, secondo lo schema in allegato.
Ciao,
P.
Hai parlato di "celle" da 3 elementi e ne hai messe 2: ne può bastare anche 1 o può essere necessario metterne anche 3? Oppure generalmente va bene appunto solo 2? Come si decide quante metterne?
Purtroppo non te lo so dire. In pratica mi sono accorto che se non si riesce ad eliminare i disturbi con 2 o 3 celle a L (VK200+condensatori) è inutile metterne altre. Probabilmente i disturbi arrivano da qualche altra parte.
Per le linee lunghe che portano segnali analogici sono necessari altri accorgimenti. Si può utilizzare cavo schermato, ma questo può introdurre problemi per il collegamento della calza schermante. Comunque è necessario abbassare l'impedenza di carico. Se hai notato un amplificatore prende i disturbi dall'ingresso (alta impedenza, anche > 500kOhm se a valvole), che deve essere curato il più possibile, mentre puoi collegare gli altoparlanti con semplici cavetti anche di alcune decine di metri perché l'impedenza degli altoparlanti è sugli 8Ohm (i puristi mi perdonino). Quindi occorre abbassare l'impedenza di uscita analogica del sensore, rispettando la banda passante del segnale, prima di introdurlo nella linea di trasmissione, ripristinandola il più possibile vicino all'ingresso analogico di arduino. Questo può essere complicato o impossibile, e allora si ricorre alla digitalizzazione del segnale, trasformandolo in sequenze di impulsi, oppure in serie di frequenze, che sono abbastanza immuni ai disturbi perché generalmente questi ultimi agiscono sulle ampiezze dei segnali. Quale soluzione adottare dipende dall'ampiezza massima (Vpp) e dalla frequenza massima (M/k/Hz) che il segnale analogico può raggiungere e dall'errore accettabile sulla misura.
Ciao,
P.
Usate i filtri induttivi in controfase, che sono fatti apposta ... sono quegli avvolgimenti "doppi" che trovate anche di recupero sull'ingresso di alimentatori vari, specie per PC ... con un paio di condensatori, prima e dopo, si occupano di "seppellire" piu del 90% dei disturbi
Etemenanki:
Usate i filtri induttivi in controfase, che sono fatti apposta ... sono quegli avvolgimenti "doppi" che trovate anche di recupero sull'ingresso di alimentatori vari, specie per PC ... con un paio di condensatori, prima e dopo, si occupano di "seppellire" piu del 90% dei disturbi
Sono questi?
Hanno molti pin... come si collegano? Schemino con i condensatori e di che capacità?
Ma, in sostanza questo dei filtri induttivi in controfase sarebbe una soluzione solo per l'alimentazione centralizzata o anche per i cavi lunghi dei sensori analogici/digitali?
Quelli sono trasformatori di accoppiamento (ma se non ti servono, li si possono usare per fabbricare induttanze in controfase, se non ne trovi gia fatte) ... quelle di filtro hanno 4 piedini soltanto, e 2 avvolgimenti identici avvolti appunto in controfase, in modo da lasciar passare la continua ed attenuare i disturbi ... se ne parlava anche in questo post, e' c'e' anche una foto di come sono in genere ...
Nei miei componenti vecchi ho trovato questi: dimmi se ci siamo
Almeno quelle col pallino verde direi di sì, ma credo anche le altre... ho preso tutte le induttanze con 4 piedini...
Però ho bisogno di un po' più dettagli sui condensatori...
Devo usare due elettrolitici, tipo C2 e C3 a pag.3 di questo doc ?
Di che capacità?
Ma e i 4 piedini dell'induttanza in controfase, come si collegano?
Questo per l'alimentazione dell'Arduino.
Suppongo vada bene anche per gli ingressi dei sensori con cavi lunghi. Giusto?
EDIT: Insomma sarebbe un filtro CLC?
Su uno schema di un altra scheda ho trovato gli ingressi che hanno ognuno un filtro CLC:
-) cond. 100nF da +V a GND
-) sul +V, in serie tra un cond e l'altro, l'induttanza 330uH
-) cond. 100nF da +V a GND
Quelle col pallino verde sono ok ... le altre non sono sicuro ...
Per il collegamento, due capi dei due avvolgimenti da un lato all'ingresso e gli altri due sul lato opposto all'uscita, non importa quali (basandomi sulla tua foto, diciamo i due capi verso il piano di appoggio all'ingresso (o uscita), ed i due capi verso la macchina fotografica all'uscita (o ingresso) ... condensatori puoi usare degli elettrolitici da 10 o 22 uF, ma mettici in parallelo anche dei ceramici da 100nF ...
Inoltre i segnali I/O non puoi lasciarli viaggiare per la casa a 5v, devono essere portati almeno a 12v o superiori, non è necessario il cavo cat5 o cat6 è solo uno spreco di denaro, il cavo tipo allarme va più che bene cha ha anche isolamento 400/750v mentre il cavo UTP non ce l'ha.
Poi ci sono i segnali analog non è propro sano superare il metro, il micro deve stare vicino al sensore (magari impiegando tanti tiny), se vuoi usare lunghe distanze va usata la conversione tensione/corrente es. 4/20mA.
Non ho sottomano una scheda di una centrale di allarme a microcontrollore di almeno 10 anni fa in questo momento, ma basterebbe prenderne una e fare un reverse eng. ... per capire come sono filtrate e che componenti di interfaccia usano per per gli I/O a 12v to 5v del micro. A distanza di anni quelle schede non sbagliano mai che ci siano motori grandi e piccoli sullo stesso impianto (con spunti da decine di A), che i cavi siano a 2 metri che a 100 mt.
Le tecnologie moderne ormai mostrano che ogni periferica possiede un piccolo micro dal singolo contatto ai moduli di espansione locale e che tutto è connesso con bus 485 a 12vdc ... che sia antintrusione, antincendio, automazione varia.
In definitiva portare ogni singolo INPUT/OUTPUT all'unità centrale è un sistema obsoleto, da anni 70, che non dico non sia valido, ma il bus è affidabile, di semplice installazione e molto altro.
Poi se uno vuole il TG si può guardare anche su una tv in bianco e nero con tubo catodico.
non è necessario il cavo cat5 o cat6 è solo uno spreco di denaro, il cavo ti po allarme va più che bene cha ha anche isolamento 400/750v mentre il cavo UTP non ce l'ha.
I fili intrecciati danno una prima protezione a interferenze. Oltre che per il RS485.
A volte si hanno anche telecamere di sorveglianza in zona, per cui si può usare per entrambi gli usi, con altri 4 fili liberi.
Come diametro fili del cavo allarme ho letto 0,22mm, mentre i cat5-6 vanno dai AWG 23-24, cioè sui 0,5mm? Se fosse così i fili cat5 porterebbero anche più A.
Il prezzo, sì, ma non mi pare tanta differenza se devi scegliere anche per il cavo di allarme 8 cavi intrecciati in rame e non CCA: sarà un 10-20€ in + su 100m.
Poi ci sono i segnali analog non è propro sano superare il metro, il micro deve stare vicino al sensore, se vuoi usare lunghe distanze va usata la conversione tensione/corrente es. 4/20mA.
pablos:
Inoltre i segnali I/O non puoi lasciarli a 5v, devono essere portati almeno a 12v o superiori,
[...]
Non ho sottomano una scheda di una centrale di allarme a microcontrollore in questo momento, ma basterebbe prenderne una e fare un reverse eng. ... per capire come sono filtrate e che componenti di interfaccia usano per per gli I/O a 12v to 5v del micro. A distanza di anni quelle schede non sbagliano mai che ci siano motori grandi e piccoli sullo stesso impianto, che i cavi siano a 2 metri che a 100 mt.
Per elevare la tensione del segnale I/O da 5V a 12V e viceversa cosa si usa?
In definitiva portare ogni singolo INPUT/OUTPUT all'unità centrale è un sistema obsoleto, da anni 70, che non dico non sia valido, ma il bus è affidabile, di semplice installazione e molto altro.
Ok, però bisogna fare i conti anche con i costi... sempre parlando a livello casalingo/hobbystico: col bus significa che per ogni sensore/zona dovresti metterci un Arduino+schedaRS485. Magari solo per i sensori analogici... quelli digitali/pulsanti usare il vecchio sistema con cavi un po' più lunghi, con Arduino+RS485 solo in macrozone.
EDIT: ho letto dei tiny...
quello potrebbe andare, tipo: attiny85+RS485
rimangono solo 3 pin liberi, giusto?
Per quanto riguarda i costi, siamo sempre lì, se vuoi un oggetto che funziona e non dia problemi certe volte non si deve badare a spese.
Spendere 100 per una cosa che non funziona significa buttare 100 e ti pesa.
Spendere 200 per una cosa che da un buon risultato ti fa dimenticare che hai speso 200
Ci sono tantissimi modi per ottenere lo stesso risultato bluethoot, radio, wifi, cavi, 485, 4/20mA, powerline .... chi porta via più tempo in manodopera in cavi e meno in elettronica (difficilmente espandibile in futuro), chi invece costa più di elettronica e meno manodopera (possibilità di espansioni future)
Questione di scelte, luoghi di impiego, pazienza, passione, tempo, conoscenza.
Hai voglia e sei capace a farti i circuitini su stampato? allora falli tu
non hai voglia di saldare e cercare/comprare componenti? allora compri già fatto.
Resta sempre il punto che quanto detto sopra questi componenti non sono comunque applicabili all'impiantistica ne civile ne industriale, porciò alla fine decade tutto. Nemmeno per me che ho N licenze, abilitazioni elettriche ed elettroniche, certificazioni, autocertificazioni, certificati di rispondenza, perizie da 20 anni, non potrei installarli
Mah, non vedo perché non dovrebbe andare bene un cavo cat5e, a parte il prezzo, con fili da 0,5mm. Per portare 5V o 12V? Per portare un segnale di input analogico? Non credo.
Al limite non è esattamente il suo per RS485, ma comunque funziona lo stesso egregiamente. Se poi lo si vuole schermato basta prendere il s/ftp.
Ah ok, per elevare/abbassare 12V-5V in quel modo lo sapevo, intendendoli come input digitali on-off 0-5V ok, avevo frainteso, pensavo ti riferissi a elevare/abbassare la tensione sempre per gli input analogici, ma appunto non capivo come si poteva fare, dato che nel ritorno del segnale, essendo analogico, la tensione è variabile...
Per i 4-20mA i link mi confermano che il ricevitore è economico e lo si può anche costruire, ma il trasmettitore è molto costoso...
Insomma non la vedo proprio una soluzione fattibile per i sensori analogici: a questo punto è molto meglio e più economica l'accoppiata Attiny85+RS485.
franketto:
... ma il trasmettitore è molto costoso...
Eh ? ... non direi ... ad esempio, un XTR117 viaggia sui 2 dollari e qualcosa al pezzo ... chi ti ha detto che erano "molto costosi" ha una strana idea del significato di "molto" ...
Invece l'integrato Xtr117 è in effetti molto abbordabile.
Comunque, rimango convinto della migliore idea del tiny, magari a spese di 4 fili x RS485 (A/R) invece dei soliti 2, ma ottima e versatile.
Semplice, perché quando avevo scritto la mia risposta dopo aver letto il tuo post, non appariva ancora editato il testo con ulteriori spiegazioni. Il tuo post si fermava dopo il 4° link. Me ne sono accorto solo dopo che il forum aveva preso la mia risposta.
Se invece, ritieni che la prima riga che dice solo che il cat5e non va bene perché ci vogliono cavi da 0,22 (invece degli 0,50mm dei cat5e), allora va bene così, vuol dire che non vanno bene perché di no hehe
Vabbé, facciamo così: tu usa i cavi di allarme, io i cat5e che in alcuni punti li sfrutto anche per le videocamere (e li ho già). Quando dovrò comprarne di nuovi, se non avrò da collegare altre videocamere potrò usare anch'io quelli da allarme e risparmierò pure qualcosa.
Che poi non ho mai detto che BISOGNA usare i cavi cat5e, ho solo detto che è bene, di base, usare cavi twistati, TIPO cavi cat5e: cioè vanno bene anche quelli... :o
Comunque sia, il discorso sulle certificazioni etc, sono d'accordo, però qui si parla solo a livello hobbistico, che funzioni, non che sia il "giusto" da un punto di vista di un installatore. Del resto già il fatto che parliamo di Arduino è ovvio che sia così.
Ciao