sabato 9 marzo 2013

Interfaccia DCC per Arduino

Come primo passo per utilizzare Arduino con il DCC si rende necessaria la realizzazione di uno shield di interfaccia per poter permettere ad Arduino di interpretare correttamente i pacchetti provenienti dal bus DCC.

La cosa è abbastanza semplice e il tutto si riduce nello schema molto semplice riportato qui sotto.

Si può notare come il bus DCC sia disaccoppiato da Arduino mediante un photocoupler il quale trasferisce il segnale sul pin 2 mediante due resistori di pull-up.

Questa interfaccia presenta anche una morsettiera a 5 poli per il collegamento dei moduli I/O mediante il DAC-BUS.

I tre jumper inseriscono o meno i resistori di bilanciamento del bus, da inserire qualora sia presente più di un modulo di espansione o in presenza di problemi di comunicazione

Per lo sviluppo del PCB ho scelto la soluzione "shield", ovverosia un fattore di forma standard con i connettori a pettine per innestare la scheda direttamente sui connettori di Arduino.

Ecco il PCB a doppia faccia

LATO SALDATURA - BOTTOM
LATO COMPONENTI - TOP
SERIGRAFIA



Il montaggio della scheda non presenta nessun tipo di difficoltà trattandosi di componenti semplici e ben distanziati tra loro. Vi consiglio prima di procedere con la saldatura di prepararvi tutti i componenti

Procedere prima con i ponticelli di passaggio tra le due facce, poi i componenti passivi (diodi - resistenze), qini lo zoccolo per l'integrato, i pettini e per ultimi i componenti più voluminosi come i morestti e il portafusibile.
Alla fine del montaggio questo è il risultato:



Qui la scheda accoppiata correttamente con Arduino. Fate attenzione al morsetto di ingresso del segnale DCC, potrebbe interferire con lo schermo della porta USB di Arduino, vi consiglio di interporre un pezzo di nastro isolante.



Per testarne il funzionamento, all'interno del pacchetto MRWWA, (ne ho parlato nell'articolo precedente) è contenuto uno sketch chiamato DCC Tester. Caricatelo in Arduino, aprite il monitor seriale e se il risultato è quello della foto siete sulla buona strada! Quelli che vedete sono i pacchetti DCC riconosciuti da Arduino.



Se volete il PDF del PCB, lista componenti e altre informazioni scrivetemi pure a stefagnani at gmail.com (sostituite at con @) sarò lieto di rispondervi!

3 commenti:

  1. Hi,I´m Mario from Spain. i like made a Arduino decoder DCC. I use the library from http://mynabay.com/arduino/2-uncategorised/14-arduino-dcc-monitor but i have problem. I made dcc monitor and I think it works. Here's a photo of the result from Monitor
    [url=http://subefotos.com/ver/?c5547de5ccc4b2e4c12a62a4d40e77e2o.jpg] [img]http://thumbs.subefotos.com/c5547de5ccc4b2e4c12a62a4d40e77e2o.jpg[/img][/url]
    Can you send me the sketch decoder you use In your Arduino?

    Thank you very much.

    RispondiElimina
  2. Hi Mario if Serial Monitor of your Arduino's IDE show any valid packet count it works perfectly.
    My sketch is in beta testing and for now it only works with remote modules for output.
    You can adapt the sketch for your use.
    Remember that the source code is under GPL license..
    As soon a possible I send you the sketch!

    RispondiElimina
  3. Hi Stefano, I adapt the sketch from DCC Accessory Address but i don't go my decoder.

    I use this configure
    gAddresses[0].address = 714;
    gAddresses[0].output = 1;
    gAddresses[0].outputPin = 5;
    gAddresses[0].isDigital = true;
    gAddresses[0].isFlasher = false;
    gAddresses[0].analogValue = 250;
    gAddresses[0].durationMilli = 500;
    and i use a led in 5th digital output pin from my arduino with a 1Kohm resistor .

    I use a multimaus with his original booster
    This is my sketch http://pastebin.com/WTz2DJZt
    Thank you very much

    RispondiElimina