martedì 15 settembre 2020

Un pannello di controllo per scambi per sistemi Xpressnet© con Arduino Nano

Facendo seguito all' articolo in cui ho descritto come pilorare gli scambi con Arduino Nano in un sistema basato sul protocollo Xpressnet©, ho sviluppato il progetto descritto in questo articolo che permette di realizzare un quadro comandi per scambi motorizzati dotati di decoder DCC per accessori.
Il progetto è semplice, esso si basa su quanto già descritto nell' articolo precedente:




il circuito permette di azionare gli scambi con indirizzo da 1 a 30 con una coppia di pulsanti normalmente aperti. La connessione dei pulsanti ai connettori P4 e P5 o P6 permetterà di individuare l' indirizzo dello scambio e la modalità di azionamento, dritto o deviato.
I connettori P5 e P6 rappresentano i comando per dritto (P5 - Straight) e deviato (P6 - Diverged) e ogni contatto è relativo alla prima, seconda e terza decina. Il connettore P4 invece conta le unità.

Con un esempio facciamo prima: per comandare lo scambio 7 dritto, collego il pulsante fra il primo contatto del connettore P5 - Straight (dritto) e il settimo contatto del connettore delle decine, per comandare lo scambio 14 deviato, collego il pulsante fra il secondo contatto del connettore P6 - Diverged (deviato) e il quarto contatto del connettore delle decine, infine per comandare lo scambio 20 in dritto collego il pulsante fra il pin 2 di P5 e il pin 10 di P4... credo adesso sia chiaro.

Il progetto utilizza un Arduino Nano, data la semplicità del codice, esso è facilmente applicabile ad Arduino Uno o meglio ancora (vista la quantità di pin) Arduino Mega, con più pin a disposizione il numero di scambi da comandare può aumentare considerevolmente.
Come negli altri progetti inerenti all' interfaccia Xpressnet© ho fatto uso delle librerie di Philipp Gahtow (http://pgahtow.de) al quale vanno i miei ringraziamenti e che possono essere scaricate a questo indirizzo 


Se non già installata installare anche la libreria Keypad disponibile nel gestore librerie standard di Arduino.

Nel codice l' indirizzo della periferica Xpressnet è codificato in una definizione fissa:

#define XNetAddress 29 //Adress on XpressNet bus

che ha valore 29, se si hanno altre periferiche con lo stesso indirizzo sul bus Xnet, questo valore va cambiato.

Lo scketch ha commentate le righe per la seriale di servizio usate per il debug.
Decommentare queste righe se necessario per avere una visualizzazione sul terminale seriale.
Se si desidera utilizzare il debug sulla seriale di servizio è necessario dotarsi di un adattare Seriale USB con chip FTDI o similari da collegare ai pin 11 e 12
In questo caso i dispositivi comandabili diventano 24 e non piu' 30.

Il funzionamento dello sketch è molto semplice, in effetti c' è la scansione continua di due tastiere associate ai pin dei connettori P4-P5 e P4-P6, viene rilevata la pressione di un tasto ed inviato un comndo di attivazione/disattivazione dello scambio associato al pulsante premuto.
Lo schema ha  un pulsante collegato al pin A0 per usi futuri, così come il bus I2C (display ?) e due pin A6 e A7 che possono essere associati (nello sketch) ad itinerari precablati.

Per scaricare lo sketch in Arduino è necessario rimuoverlo dalla scheda in quanto la seriale di default è collegata al MAX485 il quale non permette di effettuare regolarmente il download.

Anche per questo progetto ho realizzato un PCB dall'ormai mio consueto fornitore cinese, le piastre sono arrivate in 4 settimane e sono di ottima qualità.
Di seguito una foto del prototipo che ho montato. La versione del PCB che vedete è antecedente allo schema postato ma funzionalmente non ha alcuna differenza.

Il circuito montato e cablato con Arduino Nano


A presto!

Di seguito i link per la realizzazione del progetto




Per chi fosse interessato ai files gerber per la realizzazione del PCB ne faccia richiesta tramite il modulo di contatto del blog in Home Page, riceverete un link ai files necessari.