viernes, 30 de marzo de 2012

Control locomotoras 16F876A modelismo ferroviario HO

Muy Buenas a todos!!!

Bien ya solo me queda un poco para terminar todo el conjunto de desvíos y controles para los 3 circuitos de la maqueta.

Ya solo faltaría el modulo de detección para, por ejemplo, paradas en caso de choque inminente, detención frente a el desvió, para ceder el paso a otra locomotora etc.

Supongo que este sera un poco más complicado que estos 2 últimos ya que sera el encargado de interconectar todo.

Bien hoy solo pongo una foto para que se vea como quedan todo el conjunto de circuitos. Espero organizarlo todo un poco mejor ya que hoy solo he tenido tiempo para unas pocas pruebas y todavía hay cosas que se pueden mejorar.


Por fin ya esta casi casi terminado, le he añadido un LCD 16x2 al conjunto del micro que controla los desvíos y el teclado.

Ahora puedo ver en la pantalla que desvíos (Dx) y que cruces (Cx), o significa circuito en su posición predeterminada y 1 si esta activado, el otro conjunto es para las velocidades de los 3 circuitos, en la imagen corresponden a el grupo de la derecha.

Las velocidades que son controladas por el otro microcontrolador aparecen reflejadas en LCD y las envío mediante la instrucción SEROUT a una velocidad de 9600.

Todo funciona correctamente, pero se puede mejorar, por ejemplo, haciendo que el LCD me indique la dirección en la que va cada circuito.

 

Bien por el momento esto es todo!!! Un saludo!!

miércoles, 21 de marzo de 2012

Control de tren en Visual Basic

Bien ya tengo terminado mi primer boceto del programa para el control de trenes de mi maqueta.
primero hice el programa que voy a utilizar para mi maqueta particular, pero primero para no agobiarme he decidido hacer pequeños programas para luego solo tener que montarlos en el principal.

Bien este es el control para una sola locomotora:


Es bastante básico, pero tiene todas las funciones marcha, paro e inversión de la dirección.
La velocidad cuenta con 255 pasos (desde 0 has 254)
Puerto COM hasta desde 300 hasta 9600 Baudios
Botones de Avance, Retroceso y Stop

Y bueno todo esto lo podéis aplicar directamente y os puede servir de ejemplo para algo más elaborado, ya que en el archivo también  se incluye  el código  fuente  lo  podéis  encontrar  en  la  sección de Descargas. O bájate directamente elarchivo control del trenes en visual basic

Espero que os guste este pequeño aporte al mundo del modelismo ferroviario.

Y proximamente intentare hacer el programa en PBP para el 16F876A o 16F628A

By PeYuTrOn

sábado, 10 de marzo de 2012

16F876A ADC y HPWM

Bien, buscando como controlar las locomotoras de la maqueta encontré como configurar la instrucción Hpwm.
Hpwm es una instrucción que llevaba tiempo que quería probarlo pero siempre me había dado fallos, eso unido a mi poca paciencia y tiempo... Pero bueno encontré un ejemplo en todo pic y revisando la ayuda de Microcode Studio, hice este pequeño programa para controlar la intensidad de 2 leds con los conversores analógicos.

Una de las ventajas que tiene es que se ejecuta en segundo plano así que puedes hacer otras cosas mientras que se ejecuta hpwm. Una de las desventajas es que utiliza pines específicos del PIC llamados CCP, en el caso del 16F876A son 2 y están situados en los pines 12 y 13 (CCP2 y CCP1 respectivamente).

Para activar el HPWM en PBP se utilizan los siguientes DEFINE'S
DEFINE CCP1_REG PORTC 'Hpwm 1 pin port
DEFINE CCP1_BIT 2 'Hpwm 1 pin bit
DEFINE CCP2_REG PORTC 'Hpwm 2 pin port
DEFINE CCP2_BIT 1 'Hpwm 2 pin bit


Bueno con esto se habilita, y la instrucción es así:  

HPWM Channel,Dutycycle,Frequency

En Channel ponemos el canal del CCP que estemos usando, 1 para CCP1 y 2 para CCP2

En Dutycycle pondremos la variable o el número que queramos para los ciclos que especifica el encendido / apagado en relación a la Frecuencia (Frequency). Con una variable Byte, 0 seria totalmente apagado, 127 seria la mitad de la onda y 255 seria la onda completa, en el caso del led, este brillara a su máxima potencia.

El tema de las frecuencias (Frequency) no lo tengo muy claro asi que mejor mirarlo en el Data del Chip, yo estoy utilizando 255 y funciona bien, al menos en la prueba por hardware, porque en la simulación no va muy fino. Pero no me queda muy claro si es por culpa del PC o del programa...



En la pagina de descargas encontrareis el ejemplo en Pbp y la simulación en Proteus para el control HPWM mediante ADC
Un saludo!!

By PeYuTrOn