Central Digital para CC


Hace ya un tiempo vengo haciendo programas para controlar las locomotoras de mi maqueta, desde el más simple, hasta algo ya más elaborado como el último que hice. Bien, lo bueno de estos sistemas (para mí) es que siguen siendo simples, sin capacidad para poder "afinar" la marcha.
El propósito es, como siempre, máximo rendimiento al mejor precio. Para conseguir esto, he intentado y sigo intentando, combinar lo mejor del sistema DCC en un controlador de Corriente Continua o CC (DC en ingles).
 En H0 y N el sistema digital es el rey, pero en escalas como la Z es muy complicado digitalizar. Yo empezé en analógico, y si dijera que no me gusta el sistema digital mentiría, pero por el momento me quedo en analógico.

La central:

  • Control de hasta 8 vías simultaneas. 
  • Regulador de velocidad mínima de cada vía.
  • Regulador de velocidad máxima de cada vía.
  • Regulador de carga de cada locomotora.
  • Control de hasta 64 desvíos
Decodificadores:

Serán de tres tipos:
  • Decodificador para vías. 4 vías y cambios de sentido. (En construcción)
  • Decodificador para desvíos. En bloques de 8 desvíos. (En construcción)
  • Decodificador mixto. 2 vías y cambios de sentido y 8 desvios. (En construcción)


El sistema que utilizo es el de dos carriles, según se aplique la corriente continua en una polaridad sobre las vías el motor girara en un sentido o en otro.

Sistema DC dos carriles
Todo comienza con una fuente de alimentación lo más estable posible. Hay varias maneras de conseguirlo, una seria con un transformador de unos 12-16v ~ CA, con un puente rectificador, unos condensadores y algunos 7812 y 7805 para sacar los 12V o 5V en CC.
Un ejemplo podría ser este:
Pero si tu maqueta no es muy grande, como es mi caso, 3 circuitos y unos 3m2. creo que no es necesario hacerla uno mismo, ya que podréis encontrar en cualquier PC (nuevo o viejo) un fuente de alimentación perfecta para este fin. Las hay de varios tipos:


  • Fuente AT:
Fuente AT
Esta fuente es la más antigua, así que si tienes algún viejo pentium o 486 posiblemente tengas una de estas, ya que con la llegada de procesadores tipo MMX se paso a las fuentes ATX.
La fuente AT lleva un interruptor para apagar y encender el equipo, este interruptor corta los 220V~ así que cuidado si no quereis llevaros un buen calambrazo.  Es muy útil porque posee multitud de salidas de 5V y 12V, 








  • La fuente ATX


  • Fuente ATX
    Esta fuente es la actual, no lleva interruptor, se enciende y apaga llevando a masa el cable, en este caso, verde. Masa es cualquier cable negro que salga de la fuente.
    La fuente ATX además de tener 5V y 12V también tiene salida de 3,3V.
    Para hacerla funcionar lo mejor seria poner un interruptor entre el cable verde y el negro.



    LA CENTRAL:

    Intentare que todo sea lo más claro posible, haciendo esquemas y diagramas para que todo este lo más claro posible. Ya está algo avanzado, así que expondré primero lo que ya tengo hecho, empezando por el menú:

    Pantallas:

    Menú principal
    Menú principal:
    Este es el menú principal. Desde el accedemos a las locomotoras, a los desvíos y al menú de configuración.
    Para acceder a la locomotora solo hay que presionar el número de la locomotora que queramos utilizar. 
    Pulsando " * " entramos en el menú para  seleccionar los desvíos.
    Pulsando " 0 " entramos en el menú para configurar el número de locomotoras y de desvíos                                                                                                                                                                     

    Menú configuración: 
    Este menú es el encargado de configurar el número de locomotoras y de desvíos que dispongamos en nuestra maqueta.

    Pulsando " * " entramos en el menú para  seleccionar el número de vías, desde 1 hasta 8. Pulsando " 0 " entramos en el menú para configurar el número de desvíos , desde 1 hasta 64. Pulsando " # " volvemos al Menú principal.


    Control Principal

    Control principal:
    Una vez hallamos accedido a la locomotora correspondiente, en este caso la número " 1 ".
    En la primera linea del LCD nos muestra el número de locomotora, la velocidad y el sentido de la marcha. El sentido de la marcha esta representado con el dibujo de una locomotora, esta nos indica la dirección.
    En la segunda linea del LCD se explica a continuación:

    1. Pulsando " 0 " entramos en el menú de configuración de la locomotora en cuestión.
    2. Los dos primeros " 00 " el primero nos indica el número de desvío que se abrió / cerró y el segundo dígito nos dice su estado, 1 = abierto, 2 = cerrado.
    3. El ultimo dígito se refiere a la ID del micro esclavo al que esta transmitiendo los datos.



    Menú Ajustes
    Menú ajustes:
    Una vez seleccionada la locomotora podemos ajustar su velocidad máxima y mínima, y la carga que lleva la locomotora (más o menos vagones).
    Esta e la parte que hace que este programa mejore a los demás, la capacidad de poder manejar cada locomotora de manera individual aunque solo sea en su circuito. Como el PWM no arranca el motor a en el primer paso, ya que 12v/254 = 0.04V y no es suficiente,  para el primer arranque de la locomotora andará sobre los 3.5V o los 4V (esto es muy variable)es decir necesitamos que la variable que controla la locomotora empiece a contar desde 70 - 80. Así en Vmin, podemos ajustarla hasta donde queramos y ese sera el punto donde empiece a contar el potenciometro.
    Vmax, hace referencia a la velocidad máxima a la que queramos que valla cada locomotora, de esta manera no las forzaremos más de lo debido.
    Load, añade unos puntos extras a Vmin, para en el caso de llevar carga que sea una salida suave igualmente.

    Pulsando " 1 " entramos en el menú para seleccionar la velocidad mínima de la locomotora.
    Pulsando " 2 " entramos en el menú para seleccionar la velocidad máxima de la locomotora. Pulsando " 3 " entramos en el menú para seleccionar la carga de la locomotora.
    Pulsando " # " volvemos al Control principal.

    Selector de desvíos
    Selección de desvíos:
    A esta pantalla se accede pulsando " * " desde el Menú Principal y desde el Control principal. Introduciremos un número desde el "01" hasta el "64". Si ponemos un número superior al definido en el Menú Configuración, nos saldra un error indicando cual es el número máximo de desvíos. Si estamos dentro del rango, nos aparecerá un mensaje "DESVÍO ABIERTO" o "DESVÍO CERRADO" según sea el caso.

    Igualar:
    Esta pantalla sale al cambiar de un Control de velocidad a otro control con velocidad diferente. Es decir, en el supuesto de que estuviéramos en la locomotora Nº1 a una velocidad de 81  y pasáramos a la locomotora Nº2 con marcha 0, nos aparece esta pantalla que nos obliga a poner el potenciometro en la posición 0. Esto está programado  así para no tener que recordar en que velocidad estaba anteriormente una locomotora y poder usar un solo potenciometro para controlar los ocho circuitos.

    Circuitos:

            Para el cerebro de la central he optado por un microcontrolador 16f786a de 28 pines, con bootloader  Tiny a una velocidad de 20 Mhz.

    La encargada de mostrar los datos es una sencilla pantalla LCD de 16x2 caracteres y un bus de 4bits

    La entrada de datos se hace mediante un teclado 3x4 y un potenciometro de 5k ohm.

    La comunicación se divide en dos partes:


    1. - La comunicación  PC - Central, que es la comunica el ordenador con la central para programación y para (en un futuro) poder operar desde el PC. También me gustaría que esta comunicación sirviera para ver los datos de la maqueta en el PC mientras se opera en modo manual. De todo esto se encargara un MAX 232 o MAX 233 
    2. -La comunicación Central - Módulos. Para comunicar la central con los módulos de locomotoras y con los módulos de desvíos. Para esto he diseñado una red basada en el MAX 485. La ventaja del MAX 485 es que es multipunto, es decir, se pueden conectar a ella hasta un máximo de 32 elementos. Este equipo al completo, como máximo tendría 11 elementos.

    Pues bien, ya la tengo montada y funcionando, en un principio no ha dado problemas. El programa carga bien y los menús funcionan con soltura. Si os fijais un poco en la foto os dareis cuenta de que aun no he puesto el MAX485. Hasta que no tenga también uno de los esclavos no puedo probarlo así que lo pondré cuando monte el otro. Subiré un vídeo próximamente para que se vea el funcionamiento.

    La PCB también está terminada, después de unos retoques de ultima hora. El enlace es este: PCB CDLA v1.0. Para poderlo ver correctamente os recomiendo Inkscape, pero supongo que cualquier programa capaz de leer el formato SVG.


    También esta disponible la simulación en Proteus. La puedes descargar Aquí







    2 comentarios :

    1. amigo para que tienes colocado el rs232 ? para poder verlo en el computador ??
      saludoss

      ResponderEliminar
      Respuestas
      1. Así es, aunque esa parte aun no esta terminada. El programa de PC esta en proceso. Gracias por comentar, si tienes más dudas o encuentras algo que no te funcione, hazmelo saber. Un Saludo

        Eliminar