Mi incuriosisce la sfida a programmarmi un Arduino Uno Rev.3 in un decoder DCC in grado di pilotare motori per deviatoi, ma ci devo arrivare da solo, pur con tutti gli aiuti del caso.
Al di là che siano motori a bobina, lenti o servo, sono arenato al momento al problema di decodificare e interpretare i pacchetti di segnali in arrivo dal bus DCC.
In pratica ho adottato uno schema frequentemente riportato in rete per connettere il bus DCC alle porte digitali di Arduino con un sistema otpoisolato per evitare guai visti i diversi voltaggi.
Lo schema è questo
Immagine:
36,99 KB
Ho caricato librerie e sketch da questo sito e in effetti il tutto funziona:
http://www.mynabay.com/dcc_monitor/
Posso vedere a monitor (seriale) i vari pacchetti DCC che cambiano man mano che invio comandi ad un ipotetico decode deviatoi.
Immagine:
121,35 KB
Pur essendoci in rete altri esempi, quello che non riesco a capire è come diversificare un comando impartito allo stesso indirizzo per la deviata o il corretto tracciato.
Mi spiego, ci sono esempi in rete in cui ad ogni indirizzo si associa un'azione di arduino. Ma se allo stesso indirizzo arrivano due comandi opposti, deviata e corretto tracciato appunto, come faccio a distinguere tali due comandi e di conseguenza impartire ad esempio un "HIGH" in un pinoutput per deviata e un altro "HIGH" in un secondo pinoutput per il corretto tracciato?
Grazie a chi mi potrà dare un suggerimento