Un controlador de semáforos para trenes a escala, capaz de representar los aspectos más comunes de los semáforos de RENFE/ADIF usando un Arduino y unas placas de control PWM.
Existen muchos programas basados en Arduino para manejar señales en trenes a escala, pero no encontré ninguno que se ajustara a mis necesidades: por ejemplo la mayoría están pensados para controlar semáforos de dos focos únicamente (rojo y verde), dejando de lado señales complejas de tres o cuatro focos con múltiples aspectos posibles. Así que decidí crear el mío propio.
Las ventajas de este sistema son las siguientes:
- Control de hasta 12 señales por Arduino, con un máximo de 48 focos
- Hasta 4 focos por señal en configuración de ánodo común, o 5 en configuración de cátodo común.
- Compatible con sistemas analógicos y digitales.
- Flexible, barato y escalable, gracias al uso de placas PCA9685.
- Se puede conectar una mezcla de señales de ánodo común y cátodo común, indistintamente.
- Se pueden conectar señales con diferente número de focos o configuraciones.
- Todos los focos de una señal de ánodo común brillarán siempre con la misma intensidad.
- Atenuación (o encendido progresivo) ajustable e independiente del número de señales o focos conectados.
- Velocidad de parpadeo ajustable.
- Encendido y apagado simultáneo de todos los focos de una misma señal.
- Preparado para las señales más típicas de RENFE/ADIF, pero configurable para cualquier otro operador.
- Se incluyen archivos SVG compatibles con Rocrail, para representar las señales típicas españolas.
El presente post, el programa asociado y su documentación asumen ciertos conocimientos y experiencia con Arduino, tanto en uso como en programación.
Este proyecto en sí mismo y el código que utiliza se otorgan bajo la licencia Creative Commons CC BY-NC-SA 4.0 Así que puedes usarlo, modificarlo y distribuirlo libremente bajo la misma licencia, siempre que sea con propósitos no comerciales y citando la autoría original.
Esta sección es un breve resumen: más detalles de funcionamiento y conexiones en la documentación incluida en la descarga (ver más abajo).
El programa se instalará en una placa de Arduino, que a su vez controlará una o varias plaquitas PCA9685, que serán las encargadas de dar corriente a los semáforos. Estas populares plaquitas están pensadas para manejar servos, pero como en el fondo son controladores PWM, se pueden usar también para encender diodos LED con ciertas ventajas sobre las salidas normales del Arduino. Además son baratas, con lo que no supone un sobrecoste inasumible.
El esquema de general de funcionamiento es el siguiente:
El método de entrada le dirá al Arduino lo que queremos hacer. Podrá ser desde unos pulsadores (en el caso de una maqueta analógica sin demasiadas complicaciones) a un decodificador que interprete las señales de una central digital. El sistema está pensado sobre todo para maquetas digitales, ya que se podrán aprovechar mejor todas las posibilidades que ofrece.
Seguidamente, el Arduino procesará las órdenes dadas a través del método de entrada, y controlará las placas PCA9685 para poner cada semáforo en el aspecto deseado. Los semáforos que tengan conexión de ánodo común (polo positivo común a todos los focos) requerirán un adaptador, mientras que los de cátodo común (polo negativo común a todos los focos) se podrán conectar directamente (ya que las placas PCA9685 tienen salida negativa común). La mayoría de modelos comerciales de semáforos de los fabricantes habituales están cableados con ánodo común, así que la mayoría de las veces necesitaremos un circuito adaptador.
Necesitaremos como mínimo:
- Una placa de Arduino (bastará con un Arduino Nano).
- Una o varias placas PCA9685, dependiendo del número de semáforos y focos conectados.
- Nuestros semáforos favoritos. Si son de ánodo común (los más típicos) será necesario un adaptador.
- Un método de entrada (decodificador, pulsadores...)
- Componentes varios para construir los decodificadores y adaptadores (si son necesarios).
En cuanto al método de entrada y el circuito adaptador, así como para una lista detallada de componentes para el decodificador o los adaptadores de ánodo común, ver mejor la explicación detallada en la documentación que acompaña a la descarga del programa. En el caso más típico de una maqueta digital, en la documentación se incluye un diseño de decodificador casero compatible con el programa de control, así como de los circuitos adaptadores.
Como se ha mencionado, el sistema está pensado para funcionar de forma óptima en una instalación digital. Si bien el manejo en analógico es factible, requiere tener en cuenta las particularidades del usuario final (control de automatismos, enclavamientos, etc.) y por ello será necesario adaptar el sistema a cada instalación analógica.
En cambio en digital la instalación y funcionamiento no requerirán modificaciones sustanciales al programa, salvo que el usuario quiera representar señales distintas a las españolas. Además, la mejor forma de manejar semáforos complejos (como por ejemplo una señal de salida de RENFE/ADIF de cuatro focos, que tiene hasta 9 aspectos posibles) será utilizar un sistema de control por ordenador o tablet, mediante programas como JMRI o Rocrail. Para este último caso se incluye un juego de archivos SVG que permite representar las señales españolas más típicas en Rocrail.
En el vídeo que se puede ver en este enlace se muestra el funcionamiento del sistema en un banco de pruebas, controlado por el programa Rocrail (instalado en un miniordenador Raspberry Pi con pantalla táctil) y una central digital SPROG.
Tanto el programa como la documentación detallada (en inglés y español), así como los diseños y resto de elementos necesarios, están disponibles de dos formas:
- Pinchando aquí.
- O para usuarios familiarizados con GitHub, aquí.
En cualquiera de los dos casos, la estructura de archivos de la descarga contendrá las siguientes carpetas:
- "analog_version": código principal para una instalación analógica sencilla, controlada por pulsadores.
- "digital_version": código principal para una instalación digital.
- "decoder": código para un decodificador casero compatible con la versión digital del programa.
- "docs": manuales y documentación, en español e inglés.
- "PCB": diseños de placas PCB para el decodificador casero y los adaptadores a ánodo común.
- "Rocrail_SVG": imágenes para señales RENFE/ADIF compatibles con Rocrail.
A continuación, un vídeo de muestra de lo que se puede conseguir con este sistema y un minúsculo semáforo de salida con cuatro focos a escala N (en este caso de la gama Finescale de Mafen). Los entendidos en la materia reconocerán todos los aspectos (Parada, Vía libre, Vía libre condicional, Anuncio de precaución, Anuncio de parada, Anuncio de parada inmediata, Rebase autorizado con parada, Rebase autorizado sin parada, y Movimiento autorizado) que esta señal es capaz de representar. ¡Ánimo, que merece la pena el resultado!