Aquesta publicació explica com augmentar el nombre de senyals controlables d’un ferrocarril en miniatura des d’iTrain de manera econòmica, amb un cost aproximat de 0,7€/sortida utilitzant DCC-EX.
Controlo les locomotores i els desviaments amb l’aplicació ROCO Z21 o des d’iTrain. El problema és que per controlar els semàfors i els llums d’edificis per crear animacions amb Z21, necessito un descodificador d’interruptors Z21 (10836) que costa uns 80€ per 8 sortides digitals independents (8 senyals bicolors), 10€/sortida. iTrain permet tenir dos controladors i, per tant, puc afegir una EX-CommandStation (EX-CS) per controlar els senyals i els llums mantenint la Z21 per a la resta de funcionalitats. Una EX-Command Station sense sortida DCC (un Arduino MEGA) té un cost aproximat de 22€ i, de manera senzilla, s’obtenen unes 32 sortides independents (0,7€/sortida).
Basic EX-CommandStation
Per controlar els llums necessitem una EX-Command Station (no necessita la protecció del motor), per tant, només es necessita un Arduino MEGA. El primer pas és assegurar-nos que podem controlar els LED des de l’EX-CS. Utilitzant les connexions de la documentació (Active Low Signals) i el fitxer de configuració adjunt, podem comprovar, mitjançant el controlador web, que en activar l’animació “1” els dos LED parpellegen. Carregar un fitxer de configuració és fàcil mitjançant l’EX-Installer oficial.

// myAutomation.h - Generated by EX-Installer v0.0.20 for EX-CommandStation v5.4.18-Prod
AUTOSTART
POWERON
DONE
// ==============
// SINGALS
// ==============
SIGNAL(28,0,30) // ID is 28
// ==============
// AUTOMATIONS Verification of SETUP
// ==============
AUTOMATION(1,"Red and Green")
GREEN(28)
DELAY(1500)
RED(28)
DELAY(1500)
DONE
// ==============
// MAP OF DCC ACCESSORY TO DCC-EX Signal (Easier to maintain) OPTION A
// ==============
ONACTIVATEL(60)
GREEN(28)
DONE
ONDEACTIVATEL(60)
RED(28)
DONE
// ==============
// MAP OF DCC ACCESSORY TO DCC-EX PINS (no need to define signals) OPTION B
// ==============
ONACTIVATEL(61)
SET(28)
RESET(30)
DONE
ONDEACTIVATEL(61)
RESET(28)
SET(30)
DONE

Com integrar-se amb iTrain
L’iTrain no pot enviar ordres a l’EX-CS per encendre els llums utilitzant els identificadors de senyal DCC-EX. L’iTrain pot enviar ordres a les adreces d’accessoris DCC i, per tant, l’EX-CS ha d’encendre els llums quan rep aquestes ordres. Per exemple, aquestes línies fan que en activar/desactivar l’accessori amb l’adreça 60 (que no existeix), el senyal s’estableixi en verd/vermell.
ONACTIVATEL(60) // When receiving DCC-Accessory Addres 60 to HIGH
GREEN(28) // Then turn green signal 28
DONE
ONDEACTIVATEL(60)
RED(28)
DONE

L’opció A explicada és la més senzilla que he trobat. L’opció B és configurar directament els pins. És més flexible, ja que permet tenir diversos LED encesos en diferents estats.
NOTA sobre el consum: Utilitzant LEDs petits i càlids i una resistència d’1k Ohm, el consum aproximat és d’uns 2mA i, per tant, pot suportar perfectament 32 LEDs independents connectats directament a l’Arduino. En cas que el consum augmenti molt, es pot reduir fent que la sortida controli un optoacoplador connectat a una font d’alimentació independent.
