Proyectos en fase beta
Proyectos en fase beta

Estos son los proyectos con los que estoy actualmente trabajando, quizas no llegue a acabarlos pero podeis ver su estado actual.


ArduXCentral DCC con Arduino emulacion Lenz con S88 y operacion manual con OLED opcional
AutomataXpressnetAutomatizacion estilo PLC para Xpressnet
Z21GenLIModulo WiFi para GenLI y ArduX
XtopControlSeta de emergencia y control de power off para XpressNet
DCCForthDecoder DCC programable en lenguaje FORTH
AutoSensorSignalDecoder de semaforo que cambia automáticamente al detectar un tren

Los proyectos no estan finalizados y la documentacion no esta completa por lo que si los montais es por vuestra propia cuenta y riesgo.

Por favor, si los montais comunicadme vuestras experiencias, errores, etc. hareis de conejillos de indias... digo betatesters

Betatesters
ArduX

Este proyecto empezo siendo una prueba para generar DCC mediante PWM en una shield de motores rev3 que tenia abandonada ya que la compre para probar la DCC++ y como en aquel momento no me convenció (solo la soportaba Rocrail y solo tiene espacio para 12 locomotoras con el Arduino Uno) se quedó en un cajon.

ArduX

Ya que consegui generar la señal DCC pense en utilizarla como programador portatil con alimentacion a baterias y conectado al ordenador asi que le añadi el codigo para emular una central Xpressnet con interface LI-USB o LI100F (finalmente interface LZV200 debido a problemas con la señal CTS) con la idea de usarla solo como programador (y probador de locomotoras) en una pequeña via de programacion

ArduX

Si queria un programador portatil lo de tener llevar el ordenador para programar no me convencia asi que quise hacerla mas autonoma pensando de que manera podia tener un pequeño mando para operarla, mientras tanto como ya que tenia escrito el interface Xpressnet pues acabe añadiendole un bus S88 y control de hasta 32 locomotoras simultaneas.

ArduX

Con los pocos pines que me quedaban libres opte por una pantalla OLED por I2C, un encoder rotatorio tipo KY-040 y un pulsador como mando, la idea me la dio la central MX10 de Zimo. No queria usar un Arduino Mega para tener mas teclas ya que me parecia que era desaprovecharlo cuando con el Arduino Uno va sobrado usando la libreria SSD1306Ascii.h que en principio solo permite texto en la pantalla OLED aunque un texto no deja de ser un grafico con un determinado tamaño.

ArduX

Ya puestos, aunque sea simple y teniendo entradas de retroseñalizacion, le he añadido el control de un tren lanzadera que va entre dos estaciones (con un detector de ocupacion cada una) y con un tiempo de espera programable en la estacion.

Tambien he previsto la opcion de conectarle un booster CDE ya que la shield tiene una potencia limitada.

ArduX


Opciones


En general:

Arduino Uno + Motor Shield rev3
Interface tipo LZV200 v3.8
Hasta 32 locomotoras simultaneas
Via de programacion con limite de corriente a 250mA
Retroseñalización por bus S88 para 128 entradas o solo 4 entradas (65.1 a 65.4) sin bus S88
Direccionamiento de desvios segun Roco o Lenz

ArduX solo programador


Solo una salida para via de programacion y via principal limitada a 250mA

ArduX básico


Dos salidas independientes para via de programacion (limite 250mA) y via principal (limite 1,5A)
Conexion para booster CDE (necesario optoacoplador)

ArduX completo


Pantalla I2C OLED de 128x64 pixels
Encoder para control y navegacion por menus
Control manual de velocidad de la locomotora y funciones F0 a F28
Control manual de desvios 1 a 999
Lectura y escritura manual de CV1 a CV1024
Visualizacion de estado de desvios y contactos retroseñalizacion
Visualizacion del consumo de corriente de cada salida a vias
Salida para via principal (limite 1,5A)
Salida para via de programacion. Limite 250mA en programacion y seleccionable por menu (250mA/1,5A) en modo operaciones
Conexion para booster CDE (necesario optoacoplador)
Control de tren lanzadera

ArduX
ArduX

Tambien se puede realizar con un Arduino Nano y su motor shield con el L298

ArduX

ATENCION: La alimentacion de la placa esta limitada a un maximo de 12V

ArduX
ArduX
ArduX


To Do


- Probar con Arduino Mega (solo necesita un puente entre D12 y D13)
- Depurar bugs pendientes
- Completar Documentacion



Documentacion


AutomataXpressNet

Un autómata programable o PLC es un sistema de control que supervisa continuamente el estado de unas entradas y segun se programe permite controlar el estado de unas salidas para automatizar una tarea. Se suelen programar en Ladder, lenguaje “escalera” o “de contactos” que no es mas que una representacion de contactos y reles conectados de una determinada forma que tambien pueden incluir temporizadores, contadores y memorias

AutomataXpressnet

En una central Xpressnet tenemos unas entradas, los detectores de ocupacion, y unas salidas que podemos controlar, los accesorios y trenes. Los cambios en las entradas de retroseñalizacion y los desvios se comunican por el bus asi que podemos enviar cambios a los accesorios en funcion del estado de las entradas. La forma mas simple de automatizacion seria el establecer una ruta colocando desvios y semaforos en funcion de las ocupaciones

La idea es tener un modulo (caja negra) que al conectarlo al Xpressnet pueda hacer automatismos sin necesidad de correr un programa de control en un ordenador, solo lo conectariamos temporalmente al ordenador para cambiar su programacion. Hay que escoger un Arduino con dos puertos serie, uno dedicado al Xpressnet y otro para comunicarse con el ordenador. Yo he escogido el Arduino Pro Micro ya que solo necesito una salida adicional

AutomataXpressnet

Para programarlo lo conectariamos temporalmente al ordenador y desde el terminal serie mediante un sistema de menus escribiriamos las diferentes reglas para el control de las salidas al estilo de los rungs (escalones) del lenguaje de los PLC

AutomataXpressnet

Una diferencia importante respecto a un PLC es que aunque se ejecuta continuamente en ciclos de 50ms, solo se envian por el bus los cambios en las salidas (accesorios y desvios) y estos se introducen en una cola para enviarlos uno a uno, ya que podemos definir el tiempo de activacion y el tiempo de espera entre envios por si usamos una unidad CDU para darle tiempo a recargar. Si un accesorio esta en la cola y ha de cambiar, solo se enviara la ultima orden.

Ademas las acciones se ejecutan inmediatamente (aunque los desvios se introduzcan en una cola) por lo que tambien se actualiza el estado de las salidas inmediatamente

Las locomotoras controladas por el automata pueden controlarse tambien manualmente (velocidad y funciones), aunque hay que tener en cuenta que puede interferir en su control el automata ya que esta ejecutando las reglas y aunque solo envia los cambios lo hace de acuerdo a lo que el tiene en su memoria

Aqui teneis unos ejemplos de diferentes automatizaciones que podriamos obtener escribiendo las reglas correspondientes

AutomataXpressnet

Esta regla serviria para establecer la señalizacion de un bloqueo automatico al tener una ocupacion en un detector, tambien podria servir para establecer rutas con lo que se moverian los desvios y señales correspondientes a la ruta al darse una ocupacion en un sensor.


Regla:1
Si CONTACTO 65.4 ocupado
Entonces
   Mover ACCESORIO 16 posicion ROJO
   Mover ACCESORIO 17 posicion ROJO
   Mover ACCESORIO 18 posicion VERDE
AutomataXpressnet

Estas reglas controlarian una señal de tres luces (direcciones 10-R/V y 11-A) en funcion de la posicion del desvio a la entrada de la estacion y la ocupacion de la via a la que se dirije


Regla:2
Si ACCESORIO 1 en posicion VERDE
Y  CONTACTO 65.1 ocupado
Entonces
   Mover ACCESORIO 10 posicion ROJO

Regla:3
Si ACCESORIO 1 en posicion VERDE
Y  CONTACTO 65.1 libre
Entonces
   Mover ACCESORIO 10 posicion VERDE

Regla:4
Si ACCESORIO 1 en posicion ROJO
Y  CONTACTO 65.2 ocupado
Entonces
   Mover ACCESORIO 10 posicion ROJO

Regla:5
Si ACCESORIO 1 en posicion ROJO
Y  CONTACTO 65.2 libre
Entonces
   Mover ACCESORIO 11 posicion ROJO
AutomataXpressnet

Estas reglas controlarian la señalizacion de un circuito circular de tres bloques de forma que al ocupar un bloque se coloque el semaforo del bloque anterior a rojo y cuando se libere pase a verde


Regla:6
Si CONTACTO 65.5 ocupado
Entonces
   Mover ACCESORIO 7 posicion ROJO
Sino
   Mover ACCESORIO 7 posicion VERDE

Regla:7
Si CONTACTO 65.6 ocupado
Entonces
   Mover ACCESORIO 5 posicion ROJO
Sino
   Mover ACCESORIO 5 posicion VERDE

Regla:8
Si CONTACTO 65.7 ocupado
Entonces
   Mover ACCESORIO 6 posicion ROJO
Sino
   Mover ACCESORIO 6 posicion VERDE

Los objetos de las acciones en la parte Sino no se deben controlar fuera de su regla ya que se ejecutaran siempre que no se cumplan las condiciones de la regla por lo que nos podemos encontrar situaciones en las que no se obtienen los resultados esperados

AutomataXpressnet

Las siguientes reglas controlarian la locomotora con la direccion 3 (que hemos definido en la posicion 1 de las 7 posibles) como un tren lanzadera entre dos estaciones de forma que cuando llegue a la estacion se pare, a los 5 segundos invierta el sentido de las luces y otros 5 segundos mas tarde salga en direccion a la otra estacion, cambiando el aspecto de los semaforos de salida de cada estacion.


Regla:9
Si MEMORIA 0 desactivada
O( ACCESORIO 1 en posicion VERDE
   Y  ACCESORIO 2 en posicion VERDE
   )
Entonces
   Activar MEMORIA 0
   Liberar el BLOQUE 1
   Liberar el BLOQUE 2
   Mover ACCESORIO 1 posicion ROJO
   Mover ACCESORIO 2 posicion ROJO
   Desactivar FUNCION 0 de la LOCOMOTORA[1]=3

Regla:10
Si CONTACTO 66.1 ocupado
Y  esta libre el BLOQUE 1
Entonces
   Colocar LOCOMOTORA[1]=3 en el BLOQUE 1
   Liberar el BLOQUE 2
   Mover ACCESORIO 2 posicion ROJO
   Mover LOCOMOTORA[1]=3 al 0% de velocidad adelante
   Activar MEMORIA 1

Regla:11
Si hay locomotora en el BLOQUE 1
   durante 5000ms
Y  MEMORIA 1 activada
Entonces
   Activar FUNCION 0 de la LOCOMOTORA[1]=3
   Mover LOCOMOTORA[1]=3 al 0% de velocidad marcha atras
   Desactivar MEMORIA 1

Regla:12
Si hay locomotora en el BLOQUE 1
   durante 10000ms
Entonces
   Mover ACCESORIO 1 posicion VERDE
   Mover LOCOMOTORA[1]=3 al 50% de velocidad marcha atras

Regla:13
Si CONTACTO 66.2 ocupado
Y  esta libre el BLOQUE 2
Entonces
   Colocar LOCOMOTORA[1]=3 en el BLOQUE 2
   Liberar el BLOQUE 1
   Mover ACCESORIO 1 posicion ROJO
   Mover LOCOMOTORA[1]=3 al 0% de velocidad marcha atras
   Activar MEMORIA 1

Regla:14
Si hay locomotora en el BLOQUE 2
   durante 5000ms
Y  MEMORIA 1 activada
Entonces
   Activar FUNCION 0 de la LOCOMOTORA[1]=3
   Mover LOCOMOTORA[1]=3 al 0% de velocidad adelante
   Desactivar MEMORIA 1

Regla:15
Si hay locomotora en el BLOQUE 2
   durante 10000ms
Entonces 
   Mover ACCESORIO 2 posicion VERDE
   Mover LOCOMOTORA[1]=3 al 50% de velocidad adelante

Ademas de contactos y accesorios podemos controlar la velocidad, sentido y funciones de hasta 7 locomotoras. Tambien tenemos unas banderas (flags) en la memoria del automata que podemos actvar y desactivar. Los bloques son como las banderas pero pueden contener el numero de una de las locomotoras controladas o estar libres. Ademas de condiciones Y (serie) tambien podemos usar condiciones O (paralelo), hasta 8 contadores y temporizadores a la conexion y a la desconexion

La regla 9 la usamos para inicializar el sistema. Al conectar todas la memorias estan desactivadas. Esta regla se ejecutara al iniciar el programa o bien si ponemos los dos semaforos en verde entonces activa la memoria que la ha disparado para que no se vuelva a ejecutar esta regla, coloca ambos semaforos en rojo y libera el contenido de los bloques

AutomataXpressnet

Al pulsar el boton el tren dara vueltas hasta pasar 5 veces por el detector, ademas la ultima vuelta la dara a una velocidad mas baja


Regla:16
Si CONTACTO 66.6 ocupado
Entonces
   Mover LOCOMOTORA[2]=128 al 65% de velocidad adelante
   Poner a 0 el Contador 0

Regla:17
Si CONTACTO 66.4 libre
Y  Contador 0 es 4
Entonces
   Mover LOCOMOTORA[2]=128 al 40% de velocidad adelante

Regla:18
Si CONTACTO 66.4 ocupado
   Contar hasta 5 en Contador 0
Entonces
   Mover LOCOMOTORA[2]=128 al 0% de velocidad adelante
AutomataXpressnet

Para el control de una estacion oculta de tres vias como la de la imagen se podrian añadir las siguientes reglas:


Regla:19
Si MEMORIA 10 desactivada
Entonces
   Mover ACCESORIO 21 posicion ROJO
   Mover ACCESORIO 22 posicion ROJO
   Mover ACCESORIO 23 posicion ROJO
   Mover ACCESORIO 24 posicion ROJO
   Mover ACCESORIO 25 posicion ROJO
   Mover ACCESORIO 26 posicion ROJO
   Activar MEMORIA 14
   Activar MEMORIA 10

Regla:20
Si MEMORIA 11 activada
   durante 20000ms
Entonces
   Mover ACCESORIO 25 posicion VERDE
   Mover ACCESORIO 24 posicion VERDE
   Desactivar MEMORIA 15
   Desactivar MEMORIA 11

Regla:21
Si MEMORIA 12 activada
   durante 20000ms
Entonces
   Mover ACCESORIO 26 posicion VERDE
   Mover ACCESORIO 24 posicion VERDE
   Desactivar MEMORIA 15
   Desactivar MEMORIA 12

Regla:22
Si MEMORIA 13 activada
   durante 20000ms
Entonces
   Activar MEMORIA 14
   Mover ACCESORIO 24 posicion VERDE
   Desactivar MEMORIA 15
   Desactivar MEMORIA 13

Regla:23
Si CONTACTO 67.1 ocupado
Y  ACCESORIO 25 en posicion VERDE
Y  ACCESORIO 24 en posicion VERDE
Entonces
   Mover ACCESORIO 21 posicion ROJO
   Mover ACCESORIO 24 posicion ROJO
   Mover ACCESORIO 25 posicion ROJO
   Activar MEMORIA 15
   Activar MEMORIA 12
   Mover ACCESORIO 22 posicion VERDE

Regla:24
Si CONTACTO 67.2 ocupado
Y  ACCESORIO 26 en posicion VERDE
Y  ACCESORIO 24 en posicion VERDE
Entonces
   Mover ACCESORIO 22 posicion ROJO
   Mover ACCESORIO 24 posicion ROJO
   Mover ACCESORIO 26 posicion ROJO
   Activar MEMORIA 15
   Activar MEMORIA 13
   Mover ACCESORIO 23 posicion VERDE

Regla:25
Si CONTACTO 67.3 ocupado
Y  MEMORIA 14 activada
Y  ACCESORIO 24 en posicion VERDE
Entonces
   Mover ACCESORIO 23 posicion ROJO
   Mover ACCESORIO 24 posicion ROJO
   Desactivar MEMORIA 14
   Activar MEMORIA 15
   Activar MEMORIA 11
   Mover ACCESORIO 21 posicion VERDE

Regla:26
Si CONTACTO 67.4 ocupado
Y  MEMORIA 15 desactivada
Y  ACCESORIO 21 en posicion ROJO
Entonces
   Activar MEMORIA 15
   Activar MEMORIA 11
   Mover ACCESORIO 21 posicion VERDE

Regla:27
Si CONTACTO 67.4 ocupado
Y  MEMORIA 15 desactivada
Y  ACCESORIO 22 en posicion ROJO
Entonces
   Activar MEMORIA 15
   Activar MEMORIA 12
   Mover ACCESORIO 22 posicion VERDE

Regla:28
Si CONTACTO 67.4 ocupado
Y  MEMORIA 15 desactivada
Y  ACCESORIO 23 en posicion ROJO
Entonces
   Activar MEMORIA 15
   Activar MEMORIA 13
   Mover ACCESORIO 23 posicion VERDE

La regla 19 solo se ejecuta al iniciar el sistema y deja a las vias del estacion oculta y la via de entrada sin tension, ademas coloca la ruta encaminada hacia la via 3 (M14 es un desvio virtual para ayudarnos en la logica)

Las reglas 20 a 22 hacen que al cabo de 20s de haber salido un tren cambien el desvio correspondiente para tener entrada a su via y dan corriente a la via de entrada para que un nuevo tren pueda avanzar

Las reglas 23 a 25 se encargan de detener al tren al llegar a su via por la ruta establecida, quitan corriente a su via y a la de la entrada y cambian el desvio de entrada a otra ruta. Luego dan corriente a la via adyacente e indican que esta saliendo un tren por ella.

Las reglas 26 a 28 permiten sacar un tren al pulsar el boton si no hay otro saliendo y su via no tiene corriente ya que le habia llegado un tren o se acaba de iniciar el sistema. La primera que se ejecute bloqueara a las demas al activar la M15 por lo que solo saldra un tren

AutomataXpressnet

Para un control temporizado de la iluminacion de nuestra maqueta produciendo el efecto noche/dia usando el DCC2DMX en modo accesorio de forma que el dia dure 24 minutos, o sea que cada 12 minutos se produzca una transicion de la ilminacion dia a noche y viceversa, creamos las siguientes reglas:


Regla:29
Si MEMORIA 30 activada
   durante 30000ms
   mantener 30000ms mas
Entonces
   Desactivar MEMORIA 30
Sino
   Activar MEMORIA 30

Regla:30
Si MEMORIA 30 activada
   Contar hasta 24 en Contador 1
Entonces
   Mover ACCESORIO 32 posicion VERDE
   Poner a 0 el Contador 1

Regla:31
Si MEMORIA 30 activada
Y  Contador 1 es 12
Entonces
   Mover ACCESORIO 32 posicion ROJO

La regla 29 sirve para crear un oscilador en la memoria 30 usando una sola regla. Parpadeara cada minuto, 30s activado y 30s desactivado. Al usar Sino, como norma general, esta memoria solo se puede modificar en esta regla, en las otras reglas se puede consultar su estado.

La regla 30 cuenta 24 minutos usando el oscilador de la regla 29, avanza cada vez que pase de desactivado a activado, al llegar a 24 resetea el contador y produce el cambio dia/noche

La regla 31 comprueba cuando han pasado 12 minutos, la mitad del dia, mirando el contador para producir el cambio noche/dia en el DCC2DMX


Regla:32
Si MEMORIA 30 activada
Entonces
   Mover ACCESORIO 28 posicion VERDE

Regla:33
Si MEMORIA 30 desactivada
Entonces
   Mover ACCESORIO 28 posicion ROJO

Con estas dos ultima reglas podemos ver en funcionamiento nuestro oscilador ya que el accesorio 28 parpadeara a un ritmo de 1 minuto.


To Do


- Practicas con logica de bloques
- Hacer Documentacion
- Resultados test:
AuotomataXpressnet


Documentacion


- Manual de AutomataXpressNet Version preliminar
Z21GenLI

El interface GenLI ya tiene muchos años pero continua funcionando bien, con la evolucion de los ordenadores el puerto serie RS232 ha quedado obsoleto siendo sustituido por el USB y ahora esta en boga la conexion por WiFi

Afortunadamente existen modulos procedentes del lejano Oriente que permiten sustituir el MAX232 por un chip FTDI que proporciona conexion USB facilmente

Z21GenLI

Otros modulos permiten colocarles un modulo WiFi ESP-01 con el chip ESP8266 y adaptar niveles a la tension de funcionamiento de 5V con lo que sustituir el MAX232 del GenLI es una tarea facil, lo dificil es proporcionar los protocolos adecuados para conectar al bus XpressNet

Z21GenLI

El Z21GenLI usa un adaptador de modulo WiFi con el ESP8266 para sustituir al MAX232 del GenLI y poder usar la aplicacion movil de la Z21. Tambien para usar con ArduX

Z21GenLI

To Do


- Probado con ArduX. Probar con GenLI y otras centrales



Documentacion


XtopControl

Seta de emergencia y control de power off para XpressNet. En encuentros modulares si alguien pulsa STOP en el mando se para toda la maqueta, XtopControl espia el bus XpressNet y si ve una orden de 'Emergency off' envia inmediatamente 'Resume operations' con lo que no se detiene la maqueta, solo permite el paro si se pulsa su seta o las de las otras setas repartidas en la maqueta.

XtopControl

Tambien hay un jumper en el reanimador para habilitar que se pueda puede reanimar la maqueta si la central envia 'BC Emergency off' como en el caso de que se pulse STOP desde un mando inalambrico con la DR5000. Este jumper es opcional ya que si se conecta la señal E de los boosters pueden producirse problemas al no cesar la generacion de señal DCC

Se puede instalar otro pulsador de rearme en el reanimador para restablecer la proteccion una vez pulsada la seta o hacerlo desde otro mando del bus. (Si se hace desde un mando inalambrico no se rearmara el sistema). Este pulsador no es necesario en las otras setas ya que no rearma el sistema, solo devuelve la tension a las vias

Se pueden instalar varios XtopControl distribuidos por la maqueta haciendo de seta de emergencia y uno solo como reanimador/seta ocupando solo una direccion XpressNet en total.


To Do


- Probado con central DR5000. Probar con otras
- Hacer Documentacion



Documentacion


- Sketch Arduino XtopControl Version 1.0
DCCForth

Decodificador DCC programable en lenguaje FORTH para PIC16F1847 (tambien version para Arduino).

Varias salidas y entradas digitales, servos y neopixel (mas entrada analogica y bus I2C en el Arduino). Las salidas digitales tienen varios efectos de parpadeo. Programacion en lenguaje FORTH (interprete y compilador) a traves del terminal serie con almacenamiento del programa en el propio micro.

Originalmente pensado para un pulsador de accion mas facilmente programable que mi KDaktion (en el que se programa la secuencia a traves de CV) pero con mas posibilidades al incluir efectos de luces y control de mas servos y de neopixels.

Por ejemplo, un pulsador de accion que realiza el efecto de luces de obras al pulsar el boton se podria programar asi:

0 OUT CONSTANT LEDV constantes para los LED del pulsador (rojo y verde)
1 OUT CONSTANT LEDR

: RAFAGA
7 2 DO              salidas 2 a 6
  I OUT ON          enciende un LED
  250 MS            espera 250ms
  I OUT OFF         apaga el LED
LOOP ;

: OBRA
20 0 DO             realiza 20 rafagas
  RAFAGA
LOOP ;

: KDAKTION
5 1 MODE            salida 1 (LEDR) parpadeante cuando se active
BEGIN
LEDV ON
LEDR OFF
  BEGIN 
  0 LOW?            espera pulsacion entrada 0
  1 DCC? OR         o activacion por DCC
  UNTIL
LEDR LEDV + TOGGLE  cambia estado de los LED del pulsador
OBRA                realiza el efecto de obra
AGAIN ;

KDAKTION

Para cambiar la programacion solo hay que conectar un adaptador USB-serie al PIC y desde el terminal reprogramar interactivamente el decodificador
NOTA: El Arduino ya lleva integrado el adaptador USB-serie

En DCCForth he implentado una version simple del lenguage FORTH principlamente basada en eForth y FIG Forth adaptada a su uso como decodificador DCC del circuito, aun asi contiene gran cantidad de palabras habituales en las diferentes implementaciones del lenguage FORTH.

Una introduccion rapida al lenguaje FORTH la podeis encontrar aqui ( tambien en ingles) una no tan rapida pero para DCCForth esta en la documentacion.

PICForth
PICForth
ArduForth

To Do

- Probar decodificacion DCC en Arduino
- Completar Documentacion


Documentacion


- Manual de DCCForth Version preliminar
AutoSensorSignal

Decodificador para un semáforo 3 luces del tipo empleados por RENFE que realiza el efecto de encendido y apagado progresivo de las luces. Si se le conecta un detector de infrarrojos de los usados por Arduino se obtiene una señal que cambia automáticamente al detectar un tren a rojo (Parada). Cuando ya no detecta el tren, pasado un tiempo programable pasa a amarillo (Anuncio Parada) y después de otro tiempo programable pasa a verde (Vía libre).

AutoSensorSignal

El interruptor externo opcional conectado en paralelo con la entrada de ocupación permite mantener manualmente la señal en rojo cuando esté cerrado, o permitir el funcionamiento automático cuando este en posición abierta.

Si disponemos de un interruptor de palanca de 3 posiciones (derecha-sin conexión-izquierda) podemos conectarlo como en la siguiente imagen y tener tres opciones de funcionamiento del decodificador:

- Control de la señalización automático (o DCC)
- Control de la señalización sólo por DCC
- Mantener manualmente la señal en rojo.

Como opción podemos conectar un relé en paralelo con la luz roja de forma que sirva para cortar la corriente o activar el frenado ABC si se rebasa la señal con la luz roja encendida.

Otra opción interesante en señalización RENFE es tener una señal de avanzada a la entrada de la estación.

AutoSensorSignal

La siguiente imagen muestra una variante de este decodificador montado con Arduino Nano para el control de dos señales semafóricas.

Se necesita montar la detección DCC alrededor de un 6N137 con los mismos componentes que en la versión para PIC y un ULN2803 para amplificar las salidas. Usa el mismo tipo de detector infrarrojo y en este caso una placa Arduino de dos relés a 5V.

El programa está incluido en los ejemplos de mi librería descargable Semaforo.h descrita en el libro electrónico sobre "Lenguaje de programación Arduino"

AutoSensorSignal

To Do


- Probar en maqueta



Documentacion


- Manual del AutoSensorSignal
- Archivo HEX del AutoSensorSignal
- Libreria Semaforo.h