lunes, 11 de noviembre de 2013

Tormenta de ideas



Los seguidores de este blog, estarán ya al tanto, de que estoy un tanto desilusionado respecto del control de tracción de mi maqueta. No es que funcione mal, de hecho yo diría que funciona mejor que la inmensa mayoría de los controles analógicos que existen en el mercado, pero como he podido compararlo con el funcionamiento del controlador manual PWM04 que resulta espectacular en las velocidades más lentas, tal como se vio en el video del artículo Prácticas de electrónica, me ha quedado el mal sabor de boca de tener diseñado un sistema mejor y no utilizarlo en mi maqueta.

También quedó claro que el problema se deriva de la frecuencia de la señal PWM que generan las Placas Velleman, y no tengo alternativa, ya que la frecuencia es fijada por el programa del microcontrolador de la placa, y yo no puedo cambiarla, en primer lugar porque el programa está protegido, y en segundo lugar porque la programación de microcontroladores sigue siendo una asignatura pendiente para mi.

Naturalmente, la solución buena es hacer un circuito análogo al PWM04, pero en vez de controlarlo manualmenmte con un potenciómetro, hacerlo mediante un control digital. Como el control de anchura de pulsos del PWM se basa en la diferente resistencia de las dos ramas que cargan y descargan el condensador del timer NE555, se necesita exactamente un potenciómetro, pero afortunadamente existen potenciómetros digitales, es decir, dispositivos que tienen un comportamiento idéntico a un potenciómetro, pero cuyo cursor se mueve por señales digitales.

Es curioso que en mis primeros experimentos en el control de tracción por ordenador, ya utilicé un potenciómetro digital como se vio en este  artículo  de marzo de 2009  . La verdad es que con la poca experiencia que tenía entonces hice una elección adecuada, y hoy, casi cuatro años después, sigo pensando que es la mejor alternativa.

Pero claro, un potenciómetro digital de 256 pasos, necesita 8 bits para definir la posición, a los que habría que añadir cuatro bits más para definir el controlador a que se dirige la orden, y un bit más por lo menos para definir el sentido, y quizá otro para marcha-paro. En resumen la orden a enviar es de 14 bits, y todo el funcionamiento de entrada-salida del sistema de comunicaciones que utilizo basado en las placas Velleman es de 8 bits. Claro que se puede solucionar, pero es echar abajo una parte importantísima de mi sistema, y no solo en cuanto a hardware, sino en cuanto a software, lo cual a estas alturas me preocupa más. En resumidas cuentas, si esa es la única posibilidad, no lo voy a hacer, y me conformaré con el sistema actual.

Peeeero... Hay una opción:  Las famosas placas Velleman producen efectivamente una señal PWM de anchura variable con frecuencia de unos 20 kHz, y su control es directo desde el programa, es decir "no gasta bits", y por eso el sistema actual funciona solo con los 8 bits que tengo disponibles. Pero me di cuenta de que estas salidas que Velleman llama analógicas, aparecen en efecto como una señal PWM y además como una señal analógica de valor variable entre 0 y 5 voltios. Es decir, cuando el programa envía la orden de que un canal PWM se ponga al 50% hay un pin de salida en la Velleman en la que aparece una señal PWM con un pulso de anchura igual al 50% del periodo, y además hay otro pin en el que aparece una tensión igual al 50% de 5 Voltios. Es decir tengo una señal analógica comandada desde el programa en paralelo con la PWM, y por lo tanto sin tener que tocar nada del software, y sin consumir bites de la comunicación digital.

La idea, que ya se que es rocambolesca, sería obtener de aquí la codificación digital que necesito para comandar un potenciómetro digital, que acabe produciendo una señal PWM, ¡¡pero de 40 Hz !!. Y ¿cómo obtengo una codificación digital a partir de la salida analógica? Pues claramente con un "Convertidor Analógico Digital" por ejemplo ADC0804

He estado estudiando este sistema , y es factible, al menos en teoría. Iba a decir que lo he probado, pero la verdad es que la prueba ha sido virtual, gracias a Proteus. El circuito que vemos en la imagen de cabecera es el que he montado para la prueba. Es curiosa la sensación que produce ensayar los circuitos con el simulador de Proteus. Se tiene la misma sensación que cuando se ha hecho la prueba en una protoboard, es decir está uno convencido de que ha montado el circuito y de que funciona.

Bien, pero claro, ahora queda hacer un controlador PWM de baja frecuencia controlado por un potenciómetro digital que se mueva en función de la señal digital producida por el conversos AD. No es que sea difícil, pero tengo que ver la mejor forma de hacerlo.

Lo que pasa es que esta situación me ha encendido una bombilla acerca de una interesante posibilidad. Si diseño un circuito análogo al PWM04 pero comandado por una señal digital, ¿no sería posible hacer que los controladores manuales fueran también manejados por una señal digital? Es decir, puedo construir una serie de controladores del tipo del PWM04 pongamos ocho, cada uno de los cuales controla un sector de una maqueta analógica.   Pero todos ellos se manejarían desde UN UNICO mando manual, a base de seleccionar un canal y a continuación actuar sobre él. Algo muy parecido al Mousecab que construí para mi maqueta el pasado Mayo, pero claro, sin ordenador ni nada. ¡Un único mando en la mano y manejar hasta ocho trenes analógicos! Por supuesto no es un Cab Control, sino un Block Control, es decir cada canal es un bloque, no un tren, pero para determinado tipo de maquetas sería muy interesante. 

Cuando empieza mi cabeza a llenarse de ideas, no paro hasta llevarlas a cabo, o hasta convencerme que son inviables, así que en este momento tengo una bonita tormenta de ideas en el coco. Se podrá decir que para qué quiero ese controlador múltiple manual, si mi maqueta ya tiene el Mousecab que hace lo mismo pero mejor (claro, maneja trenes, no bloques, pero tiene un ordenador detrás), pero la cuestión, no es esa, es decir no se trata de si me es útil o no, sino de saber si puede hacerse o no. De hecho, tampoco necesito para nada controles manuales como el PWM04 o los anteriores, pero los he desarrollado con la misma idea de reto personal, y al final muchos compañeros se están beneficiando de ellos.

El problema de todo esto es que mi pobre maqueta está abandonada, porque estoy liado con todas estas ideas (y algunas más que ya comentaré) y no doy abasto para tanto Hobby.



  

2 comentarios:

  1. Perdon Ignacio pregunto me intereswa mucho lo que haces con la electronica, pero es la primera vez que escucho de potenciometros digitales, y no comprendo bien si es que quieres hacer un controlador pwm sin entrar en dcc, a eso te refieres, si con el pwm3 lo lograste.
    Ariel

    ResponderEliminar
  2. Hola Ariel.

    Un potenciómetro digital es un chip que tiene tres pines que funcionan como las tres patillas de un potenciómetro manual, pero que para "moverlo" en lugar de hacer girar un ele le enviamos señales digitales a los otros pines: Por ejemplo, aquí tienes el DtaSheet del que yo empleado en mi diseño

    http://docs-europe.electrocomponents.com/webdocs/0a2a/0900766b80a2a60b.pdf

    Se usan mucho en aparatos de música o control de luces, en los que en vez de girar un mando, pulsamos unos botones para subir o bajar el sonido o la luz.

    Respecto de lo que quiero hacer, efectivamente no tiene nada que ver con DCC. Mis trenes son analógicos y por lo tanto no hay ningún decoder en las locomotoras que pueda recibir y actuar con la señal digital.

    Efectivamente he diseñado y construido varios modelos de controladores PWM para trenes analógicos, entre ellos el PWM03 y el PWM04, pero estos son controladores manuales. Es decir llevan un mando que es un potenciómetro manual, de manera que si quieres controlar por ejemplo una maqueta que tenga ocho circuitos de vía necesitas ocho controladores manuales y tendrías ante ti ocho mandos, cada uno de los cuales actuaría sobre un circuito.

    Lo que se propone en este artículo es hacer un controlador múltiple. Es decir tendrías un único controlador con un único mando de velocidad y botones para paro, adelante, atrás,etc.

    El controlador llevaría además un mando parea seleccionar sobre qué circuito de vía quieres actuar. Entonces tu seleccionas en el mando por ejemplo el circuito 4 y los mandos de velocidad, marcha, paro reversa etc, actúan sobre el circuito 4 A continuación cambias a circuito 6 y los mismos mandos actúan ahora sobre el circuito 6 etc,

    La gracia del tema consiste en que cuando por ejemplo pasas del circuito 4 al circuito 6 , el tren que estuviera circulando por el circuito 4 sigue circulando en las mismas condiciones que estaba cuando cambiaste al circuito 6. Es decir, se comporta de modo semejante a una central digital cuando manejas varias locomotoras.

    En ese caso los dispositivos que generan la señal PWM para cada uno de los ocho circuitos de vía llevan un potenciómetro digital que hace la misma función que el potenciómetro manual cuando tenemos ocho mandos manuales, pero ahora todos estos potenciómetros digitales son controlados por un único controlador.

    No se si te queda claro. Quizá te ha confundido la palabra "digital" aplicada a los potenciómetros digitales, pero es que se llaman así. No tiene nada que ver con un sistema de control digital de trenes como DCC

    ResponderEliminar

Gracias por expresar tus opiniones.

Los comentarios aparecerán en el blog normalmente en unos pocos segundos