Decodificador para luces de cola universal

Todo lo relacionado con el control digital, la electricidad, electrónica e informática.
Avatar de Usuario
Rfe7747
Usuario avanzado
Usuario avanzado
Mensajes: 211
Registrado: 09 May 2013 09:45
Ubicación: Asturias
Edad: 74
Estado: Desconectado

Decodificador para luces de cola universal

Mensajepor Rfe7747 » 07 Oct 2015 13:44

Hola,

hoy presento otro circuito (aunque se puede decir que es el mismo, sólo cambia el programa) basado en el microcontrolador ATtiny85 para tener el control de encendido/apagado de las luces de cola del tren. Lo llamo universal porque permite el control de las luces a destellos, fijas o simulando los faroles de petróleo (con efecto fuego). Si hay algún tipo más, agradecería la información sobre él para incluirlo, si es posible, aunque en el mundo digital pocas cosas no lo son.

Un video de presentación:

http://www.youtube.com/watch?v=mJxnRBSzorU

En él se muestran por encima las principales características, que no detallo para evitar que sea demasiado largo. El "panel de pruebas" es un tanto casero. Las cámaras digitales no captan los colores tal como los vemos al natural (o no sé hacerlo yo) y el "efecto fuego" tampoco se aprecia con claridad en sus variaciones; realmente consiste en una modulación aleatoria del nivel de intensidad.

Las principales características:

posibilidad de direcciones cortas o largas muy sencillas de programar: cv1 y cv2 forman la dirección decimal (cv1 unidades y decenas y cv2 centenas y unidades de millar); por ejemplo cv1=2 y cv2=0 => dirección corta 2; cv1=0 y cv2=1 => dirección larga 100; cv1=99 y cv2=99 => dirección larga 9999. Interpreta correctamente las direcciones que emita la central digital.

mapeo simple de las funciones basta con escribir el número de la función deseada en una variable de configuración.

configuración de los tipos de faroles que pueden ser destelleantes, incandescentes o con efecto fuego.

programas predefinidos con configuraciones habituales para simplificar la configuración del circuito.

Todos los parámetros son programables mediante variables de configuración: la intensidad luminosa de los faroles laterales, la del inferior, el tiempo entre destellos (período) desde 0'5 a 2'55 s, el apagado progresivo, y la profundidad del efecto fuego (tanto por ciento de la luminosidad) tanto para los faroles laterales como para el inferior.

...continúa...



Avatar de Usuario
Rfe7747
Usuario avanzado
Usuario avanzado
Mensajes: 211
Registrado: 09 May 2013 09:45
Ubicación: Asturias
Edad: 74
Estado: Desconectado

Re: Decodificador para luces de cola universal

Mensajepor Rfe7747 » 07 Oct 2015 14:11

...
El esquema electrónico es el mismo empleado en otros decodificadores sencillos: puente rectificador, condensador de filtro, regulador de voltaje de 5V y microcontrolador.

Utiliza los tres pwm de que dispone el ATtiny85 para regulador la intensidad luminosa de los faroles; además con el terminal sobrante incluí la posibilidad de alimentar otro circuito, pensando en la iluminación interior de un furgón de cola, por ejemplo. Todos los LEDs se alimentan desde el microcontrolador a 5V y baja corriente (a través de una resistencia de 1K), dado que los LED tienen cada vez mejores prestaciones y para esta aplicación no se necesita que sean reflectores, sino puntos rojos visibles con claridad.

El pcb es prácticamente el mismo utilizado en otras ocasiones:

pcb.png

Lo incluiré, por supuesto, en el adjunto con los demás documentos.

El software también es muy similar al de otros decodificadores. Muy por encima, porque veo que somos muy pocos los que nos liamos en esto, consiste en: una interrupción detecta los cambios de nivel de la señal DCC en la vía; en el flanco de subida inicializa una variable, y en el de bajada lee el tiempo transcurrido desde entonces para detectar si corresponde a un cero o a un uno.

Como consecuencia de unas charlas con Norber a propósito de un proyecto muy interesante en el que está trabajando, esta interrupción solamente forma los paquetes y activa un bit si verifica que es correcto. La decodificación se hace en la función main(); así la subrutina de interrupción es más rápida.

Los dos pwm de los faroles laterales se generan empleando el timer0 y el del farol inferior el timer1; además el timer0, que no se detiene, se utiliza para tener una referencia de tiempo de casi 10 ms.

En la función main() se hace la decodificación para obtener el estado de las funciones desde F0 a F12 y, cada 10 ms, se chequean para actuar en consecuencia. El efecto flash se hace encendiendo los LEDs de un solo paso al brillo programado, permaneciendo 50 ms con él, y apagándolos en los pasos programados más o menos lentamente. El efecto fuego emplea, por una parte, un número aleatorio obtenido con un contador de 8 bits que se incrementa con cada flanco de la señal DCC, y por otra unas variables de configuración que definen el porcentaje del brillo que variará según el número aleatorio.

Si alguien tiene interés en algún detalle lo expondré con gusto, como ya sabéis.

...continúa...
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Última edición por Rfe7747 el 07 Oct 2015 18:10, editado 1 vez en total.



Avatar de Usuario
annio
Usuario avanzado
Usuario avanzado
Mensajes: 196
Registrado: 16 Dic 2010 02:50
Edad: 48
Estado: Desconectado

Re: Decodificador para luces de cola universal

Mensajepor annio » 07 Oct 2015 14:56

Francamente: No me entero de nada de la explicacion.

Pero el resultado es fantastico !!!!!!! -good -good -good


Bravoooooooooo



Avatar de Usuario
Rfe7747
Usuario avanzado
Usuario avanzado
Mensajes: 211
Registrado: 09 May 2013 09:45
Ubicación: Asturias
Edad: 74
Estado: Desconectado

Re: Decodificador para luces de cola universal

Mensajepor Rfe7747 » 07 Oct 2015 17:55

Hola annio,

¡gracias! jejeje, por eso procuro no enrollarme mucho... La verdad es que no tiene mucho objeto, porque son varias cosas en una sola y una vez decidido el formato, los demás sobran, pero... es divertido dejar volar la imaginación y llegar a realizar algo que has pensado, por peregrino que resulte.

Seguimos:

Todo lo que es configurable se resume en la tabla de las variables de configuración empleadas:

Tabla cvs.png

Las cv1 y cv2 forman la dirección como expliqué al principio. Su valor debe programarse en decimal para mayor sencillez del usuario, pero no afecta para nada en la lectura de la señal DCC; es decir, si forman un valor menor de 100 se leerá como dirección corta, y si es mayor, como larga, según lo ponga en la vía la central.

cv3 (luces de cola) y cv4 (luz interior) deben contener el número correspondiente a las funciones con que queramos controlarlas. Preveo hasta la F12 porque para un furgón de cola me parecen suficientes, pero no hay ningún problema para llevarlas hasta F28. Y en esto consiste todo el mapeo. Ya he expuesto en algún hilo que trató de ello, mi opinión sobre los endiablados sistemas que nos imponen los fabricantes.

Podría haber incluido alguna dependencia del sentido, pero luego pensé que no resultaría muy realista un vagón en cola con luces en los dos extremos luciendo según el sentido de marcha.

Con cv5 se configura el tipo de alumbrado y puede tomar los valores: 0 para el formato a destellos; 1 para iluminación incandescente, y 2 para los faroles antiguos, de petróleo, con efecto fuego.

cv6 contiene programas predefinidos. Si se programa con valores de 1 a 5 opera con los efectos indicados, con prioridad sobre cv5; si se deja a cero, opera como se defina en cv5.

cv7 y cv8 son las definidas en las normas NMRA (cv8 = 13 es DIY o sea casero).

cv9 contiene el valor deseado para el pwm (intensidad luminosa) de los faroles laterales, y cv10 el del farol central inferior. Recuerdo aquí que la luminosidad de los LEDs no sigue una proporcionalidad lineal, y hay que ir a valores bastante bajos para simular las luces atenuadas de los años de la época III. Es cuestión de probar; podemos configurarlo a medida.

cv11 define en unidades de 10 ms el tiempo entre destellos (período); permite un mínimo de 0'5 s (excesivamente corto) y máximo de 2'55 s.

cv12 y cv13 controlan la profundidad del efecto fuego en los faroles de petróleo laterales e inferior, respectivamente. El efecto fuego lo realizo variando la luminosidad aleatoriamente sobre el valor definido en cv9 y cv10. El cálculo es muy simple: se obtiene el cv12 (cv13)% de cv9 (cv10)

porcentaje = cv9 * cv12 / 100

y con ese valor como cociente se calcula el resto de dividir entre él el valor del número aleatorio (nro_rnd en el programa), que estará comprendido entre 0 y el porcentaje calculado.

variación = nro_rnd % porcentaje significa: resto de dividir el número aleatorio (que varía entre 0 y 255) entre el porcentaje calculado

Variando este porcentaje se varía la modulación: si es muy pequeño apenas se apreciará parpadeo (con valor cero la luminosidad no cambia) y si es muy grande (hasta 100%) el efecto será una intermitencia rápida entre encendido y apagado.

El código en c, los ficheros hexadecimales con el código y el contenido de la EEPROM (cvs) y el pcb de la placa están en el .zip adjunto.

Gracias por aguantarme el rollo (prometo seguir contando mis ocurrencias) y un saludos a todos,

Germán
Deco luces cola universal.zip
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.



Avatar de Usuario
Rfe7747
Usuario avanzado
Usuario avanzado
Mensajes: 211
Registrado: 09 May 2013 09:45
Ubicación: Asturias
Edad: 74
Estado: Desconectado

Re: Decodificador para luces de cola universal

Mensajepor Rfe7747 » 08 Oct 2015 10:21

Hola de nuevo,

siguiendo el consejo de mi amigo Antonio, el efecto fuego se aprecia mejor filtrando la luz de los LEDs a través de una simple hoja de papel, de manera que su luz no dé directamente a la cámara.

Intenté añadir el vídeo al anterior en YouTube, pero no lo conseguí:

http://www.youtube.com/watch?v=Y1kFcawDQ8U

Saludos,

Germán



Avatar de Usuario
Carloslmp
Administrador del Sitio
Administrador del Sitio
Mensajes: 4982
Registrado: 26 Abr 2010 00:00
Ubicación: Manises (Valencia)
Edad: 59
Contactar:
Estado: Desconectado

Re: Decodificador para luces de cola universal

Mensajepor Carloslmp » 08 Oct 2015 12:48

Si señor, muy logrado.


Gracias por participar en el foro

http://www.carlosmurillo.es


Volver a “MUNDO DIGITAL, ELECTRICIDAD Y ELECTRÓNICA”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 14 invitados