Buona sera a tutti, mi chiamo Gabriele sono nuovo e da poco ho cominciato a smanettare con Arduino, sto preparando un plastico ferroviario per mio nipote e vorrei usare Arduino per automatizzare alcune funzioni. Devo aggiungere che non ho molta esperienza in elettronica.
Il compito che vorrei attribuire ad Arduino è quello di far fermare un treno su una linea secondaria in prossimità dell’incrocio con una linea primaria percorsa in prossimità dell’incrocio da un secondo treno. In pratica il treno della linea primaria dovrebbe attivare un sensore (1) (iR-Reed) prima dell’incrocio e inibire l’alimentazione sulle sezioni di rotaia della linea secondaria, fermando il secondo treno che potrebbe sopraggiungere.
Una volta passato l’incrocio e attivato un secondo sensore (2) dovrebbe ridare alimentazione alle rotaie della secondaria. Questa cosa dovrebbe succedere anche quando il treno percorre la linea primaria nell’altro verso, ossia: passa prima dal sensore (2) togliendo l’alimentazione alle sezioni di binario della secondaria; dopo aver passato l’incrocio attiva il sensore (1) che rida corrente alla sezione.
Come posso fare a impostare questo sistema a livello di programmazione e collegamenti?
Ringrazio anticipatamente tutti coloro che visualizzeranno il post e potranno aiutarmi!
Beh inizia aiutandoci a capire meglio, fai uno schemino (se vuoi basta anche solo a penna che poi fotografi e posti qui) dell'incrocio e delle posizioni dei sensori.
Poi quando parli di "inibire l'alimentazione" immagino che possa essere sufficiente un relè per ognuno dei due tratti in questione che, nella posizione NC, lascia generalmente passare la corrente su quel tratto di rotaie, e che quando attivato la interrompe. Come far arrivare l'alimentazione a questi tratti e quindi ai relè è una cosa che dovrai vedere tu.
Per finire, come sensore va bene un reed (sul treno metti un magnete?) ma potrebbe anche bastare uno ad ultrasuoni che possa rilevare la presenza del treno, anzi forse anche meglio perché se il magnete lo metti solo sul locomotore, hai solo un impulso al suo passaggio ma non sai se i binari sono liberi nel tratto dove hai il sensore.
Insomma, prova a darci qualche info in più e vediamo, tanto il codice è una cosa che consegue il disegno della parte hardware...
Buongiorno e benvenuto nella sezione Italiana del forum,
cortesemente, come prima cosa, leggi attentamente il REGOLAMENTOdi detta sezione, (... e, per evitare future possibili discussioni/incomprensioni, prestando molta attenzione al punto 15), dopo di che, come da suddetto regolamento (punto 16.7), fai la tua presentazioneNELL'APPOSITA DISCUSSIONE (... quello che vedi in blu è un link, fai click su di esso per raggiungere la discussione) spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.
Grazie,
Guglielmo
P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposita discussione, nel rispetto del succitato regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farla al più presto.
Sì, si può fare molto semplicemente. Addirittura si potrebbe realizzare con solo un relè bistabile o qualcosa di simile... Con Arduino, però, potrai aggiungere altro in futuro,
ciao questo, nelle mie limitate doti grafiche, dovrebbe essere lo schema . In verde la linea primaria percorribile da entrambi i versi. In rosso la parte di linea secondaria che sezionerò e che allo scattare del relè sarà senza tensione, bloccando il treno sino al completo passaggio del treno primaria dall'incrocio e dai sensori. Spero che sia più chiaro. Ho delle calamite applicabili sotto il locomotore, ma potrei utilizzare anche dei sensori IR che ho acquistato o in alternativa quelli che mi proponevi. l'importante è che siano poco visibili (per questo pensavo ai reed o agli IR).
Ok, diciamo che se hai già dei magneti e dei reed vanno anche bene, anche se mi resta il dubbio relativo alla lunghezza del convoglio. Per spiegarmi, diciamo che il treno della linea primaria sta scendendo dalla parte superiore verso il basso: in pratica se il treno è più lungo della distanza tra sensore1 e sensore 2, è possibile che al passaggio del reed sul sensore 2 questo vada a riattivare la secondaria, facendo collidere con gli ultimi vagoni il treno che era in attesa nella secondaria.
Ovviamente questo problema non si pone se sai che nessun convoglio sarà mai più lungo di tale distanza. Oppure potresti mettere un magnete anche in ogni vagone (o almeno nell'ultimo) ma la cosa complicherebbe un pochino il codice, nulla di impossibile ma va considerato (ed evitato che possa interpretare un secondo treno come fine del primo..).
Ma la cosa più semplice secondo me potrebbe essere un sensore IR, molto meno ingombrante delle capsule ultrasoniche. Puoi mascherare LED e sensore IR in una qualche colonnina, ed a quel punto avresti anche l'informazione se il convoglio è passato del tutto.
Appena avrai deciso quale soluzione provare, ti consiglio di fare un primo prototipo con un solo sensore, da piazzare vicino ai binari e vedere come si comporta quando passa un treno. Se funziona, allora ampli il prototipo con un secondo sensore, quello di "fine". Poi aggiungere un LED che dovrebbe rappresentare la disattivazione della linea secondaria e vedere sse il codice funziona.
E quando funziona tutto, passare all'implementazione finale con un relè.
Inizia quindi dalla scelta dei sensori, poi proseguiamo.
Direi di puntare sugli IR. Inoltre pensavo comunque di tenere distanti dall'incrocio i sensori, fermo restando che la lunghezza del treno primario che sarà standard. questo eviterebbe come correttamente hai evidenziato possibili "scontri". Per togliere/inserire l'alimentazione dei 12V sulla linea secondaria (normalmente il circuito sarà alimentato) ipotizzavo l'uso di un modulo relè a 5v pilotato da Arduino, come ho visto già utilizzato in altri casi per le fermate temporizzate in stazione.
Da considerare l'osservazione corretta che mi è stata fatta sotto da C1P8 ...che porta a replicare anche sulla secondaria il sezionamento. (doppi sensori e un altro rele). Cosi il primo treno che arriva, indipendentemente dalla linea o dal verso inibisce la circolazione sull'altra.
Questo significa che ipotizzando che anche la linea secondaria possa essere percorsa in entrambi i versi il primo treno che attiva uno dei sensori (che a questo punto penso debbano essere 4), inibisca una sezione di binario sull'altra linea incrociata, inibendone qualsiasi transito. Questo penso porti all'uso di un altro relè per sezionare la seconda linea. Immagino
Prova a dare un'occhiata a sensori mini LiDar come QUESTO (Adafruit è cara, li trovi a meno della metà altrove e ne esistono di infiniti tipi) ... ne basterebbero un paio, sufficientemente prima dell'incrocio, sulle due linee ...
... se quello sulla linea verde rileva una presenza, toglie alimentazione alla linea rossa fino a quando la presenza non è scomparsa + un tempo X per essere sicuri del passaggio e che l'incrocio sia libero.
... idem, se quello sulla linea rossa rileva la presenza, toglie alimentazione alla linea verde fino a quando la presenza non è scomparsa + un tempo Y sempre per essere sicuri del disimpegno dell'incrocio.
Vedi tu se può andare ...
Guglielmo
P.S.: li mimetizzi tranquillamente in qualche cosa sul plastico ... cespuglio, casetta prima dell'incrocio, ecc.
Lo schema logico che hai presentato è corretto e dovrebbe valere per ogni verso di percorrenza delle due linee (percorse avanti e indietro). In scala N (1:160) temo che avrei qualche difficoltà a nasconderli rispetto agli IR. L'uso dell'uno o dell'altro modifica molto il codice ..(domanda da profano) ? grazie
.. ah, giusto, se i treni arrivano dall'altra parte ne occorre una seconda coppia per il secondo verso di marcia.
.... sono schedine piuttosto piccole, però vedi tu
SI, per questi devi usare la specifica libreria che NON ti dice solo presente/assente, ma la distanza in mm a cui vede qualche cosa, quindi ... due logiche diverse
Questo significa che ipotizzando che anche la linea secondaria possa essere percorsa in entrambi i versi il primo treno che attiva uno dei sensori (che a questo punto penso debbano essere 4), inibisca una sezione di binario sull'altra linea incrociata, inibendone qualsiasi transito. Questo penso porti all'uso di un altro relè per sezionare la seconda linea. Immagino
Comunque la logica la puoi applicare anche con dei semplici IR a riflessione ... tanto devi solo vedere quando viene coperto (arrivo del treno) e quando viene scoperto + N tempo per disimpegnare l'incrocio.
Anche questi uno per binario e per senso di marcia, quindi 4 sensori.