Plastico ferroviario: come eliminare le correnti spurie che arrivano ad Arduino

Ciao a tutti,
rieccomi con una nuova richiesta di aiuto.

Ho installato un circuito ferroviario punto-punto sul mio plastico, comandato da Arduino. In altre parole un treno parte lungo una linea ferroviara, arriva ad una estremità, viene intercettato da un sensore IR che informa Arduino della presenza del treno. Arduino toglie la corrente tramite un relè, aspetta alcuni secondi, poi inverte la polarità ai binari tramite un altro relè (siamo in CC tipo Rivarossi per intenderci) e rialimenta il treno. Questo riparte in direzione opposta a quella di provenienza, percorre tutto la linea, arriva all'altra estremità dove viene intercettato da un altro sensore IR che rifà il gioco di togli corrente, aspetta, inverti polarità, rialimenta. Tutto funziona ma...

ma quando nel plastico cominciano a girare altri treni su altre linee, Arduino impazzisce. Ogni volta che un treno parte (su linee diverse, controllate da altri trasformatori e isolate rispetto al circuito punto-punto) è come se il sensore IR rilevasse la presenza del treno e quindi scatta il meccanismo di fermo ed inversione di marcia. E poichè ci sono altri 7 treni che girano nel plastico, il risultato è che il povero treno del circuito punto-punto praticamente non si muove più ed inverte continuamente direzione.

Ho provato ad isolare i relè che comandano sosta e inversione di marcia, ma il risultato non cambia. Leggendo in giro mi sembra di capire che la soluzione potrebbe essere una rete RC (o snubber che si dica). E' così? potrebbe essere questa la soluzione per eliminare le correnti spurie che arrivano ad Arduino? E se questa è la soluzione, mi aiutate per favore a dimensionare la resistenza ed il condensatore?

Grazie. ;D
Ciao. Aldo

p.s. I componenti coinvolti sono: Arduino Mega, questa scheda relè: 5V 8 Channel Relay Module Board For Arduino PIC AVR DSP ARM che trovate qui: 5v 8 channel relay module board pic avr dsp arm Sale - Banggood.com e questi sensori IR: 20Pcs Infrared Obstacle Avoidance Sensor For Arduino Smart Car Robot che trovate qui: http://www.banggood.com/20Pcs-Infrared-Obstacle-Avoidance-Sensor-For-Arduino-Smart-Car-Robot-p-1019529.html. Infine i cavi che collegano Arduino ai sensori sono lunghi circa 10 metri, e sono in un plastico in cui ci sono cavi di alimentazione ai binari per un totale di circa 300 metri.
La corrente di alimentazione ai treni è 16V CC. e la scheda relè è alimentata da Arduino a 5V CC.

Ciao,
se posti lo sketch e qualche foto di come hai collegato il tutto sarà ben visto dal forum per aiutarti.
Saluti
Enzo

Sempre leggendo, ho trovato che quando il relè controlla un carico induttivo si deve usare anche un varistore oltre alla rete RC.
La domanda è: come scelgo il varistore?
Grazie.
Aldo

aldozan:
la scheda relè è alimentata da Arduino a 5V CC.

Questo secondo me non va bene.
Procurati un alimentatore a 5V e alimenta direttamente le schede relè.

i link mi danno errore... solo a me?
10metri di filo sono tantini ma penso che lavorando con una giusta resistenza di pulldown se ne esce abbastanza. si può mettere anche un condensatore ed in finale alla più disperata fare delle letture ripetute di conferma dello stato....un antibouce...in tal senso converrebbe attivare la seriale e spedire al serialmonitor lo stato della fotocellula ad ogni lettura di modo da vedere se ci sono falsi segnali....

Mi viene un dubbio ... hai messo dei filtri antidisturbo a tutti i motori delle tue motrici ? (o per lo meno, hai controllato se ci sono gia ? ... sono in genere due piccole induttanze saldate direttamente sui motori, con un condensatore in parallelo al motore, ed in alcuni casi altri due condensatori fra i poli del motore e massa ... alcuni fabbricanti li mettono, altri no, ma dovrebbe ro sempre esserci, sui motorini DC usati con circuiti logici o elettronica )

Ciao confermo Paolo, da come hai scritto:

e la scheda relè è alimentata da Arduino a 5V CC.

non puoi utilizzare i 5v di arduino per 8 relè.
Puoi provare a:

  • collegare un condensatore da 10uF elettrolitico ed un 0.1 tra vcc e gnd del sensore.
  • Se usi le resistenze interne di pullup, puoi provare a toglierle e metterle fisicamente da 2K, così abbassi l’impedenza di ingresso e riduci la sensibilità ai disturbi.

Stefano

Grazie a tutti per i suggerimenti.
Nello specifico: Proverò ad alimentare la scheda relè separatamente. Nelle motrici non ci sono filtri antidisturbo (parliamo di materiale anni 60). Potrebbe essere un'idea montarli.
Grazie per le indicazioni di resistore e condensatore.
Nessuno sa darmi qualche consiglio rispetto al varistore?

Arigrazie! :slight_smile:
Ciao

Ritrovata questa discussione:

Stefano

Se le induttanze ed i condensatori antidisturbo non ci sono, gia aggiungere quelli dovrebbe farti sparire la meta' dei problemi ... induttanzine da 1mH formato resistenza e condensatorini a disco o ceramici da 100nf non dovrebbero occupare troppo spazio, anche dentro le motrici piu vecchie :wink:

Grazie Qsecofr, l'idea delle letture ripetute è quella vincente. Faccio tre letture in sequenza e prendo per buono il segnale solo se è presente in tutte tre. In questo modo ho eliminato completamente il problema ed il treno va avanti e indietro che è una meraviglia!