Hola,
lo primero que el título debería de ser algo así como: "Iluminación individualizada por departamentos, controlada por decodificador de funciones elemental, con diversos efectos, y que puede ceder el control a la dirección de la locomotora para que ese control se realice en función de la velocidad...". Bueno, el caso es que a raíz del sistema de iluminación doméstica basado en arduino, me rondó la idea de ver si era posible algo similar en los coches por departamentos para simular la ocupación, salida, acceso al aseo, irse a dormir..., o el enano que, como yo entonces, sentía la necesidad de encender o apagar a cada poco... Pero claro, una cosa era encender LEDs en una parte estática donde el consumo tiene relativa importancia, y otra encenderlos en la parte dinámica que se alimenta de las vías. Por lo tanto había que pensar en el tamaño y en el consumo. Esto, mezclado con mis chapuceos con arduino, dio origen a lo que os muestro a continuación (pido disculpas por la mala calidad, debida en parte a mi y en otra a las condiciones cuartomundistas de internet aquí que me da una velocidad de subida de 15 a 20 KB pero que me cuesta como a los que tenéis 10 megas):
Los dos emplean el mismo circuito, con un ATtiny85, de 8 patillas. Se basan en la multiplexación; es decir, encender sólo un LED en cada instante, repitiendo el proceso con una rapidez tal (aquí unos 50 Hz) que el ojo ve la iluminación como continua (como el cine o la televisión). En realidad encienden hasta dos (en el ochomil) o tres (en el verderón). Esto significa que no están consumiendo todos al mismo tiempo, sino dos o tres como máximo, lo que reduce el consumo, cosa importante cuando se circula por nuestras vías
Con cinco patillas funcionales, organizadas como dos filas de tres columnas o la inversa, se forman 2x3=6 nodos, cada uno correspondiente a una de las filas y una de las columnas; y como los terminales del microcontrolador pueden ser salidas o entradas, se pueden conectar en cada nodo dos LEDs en antiparalelo; es decir doce.
Con esa idea y las posibilidades de arduino preparé el circuito que hace solamente ese efecto de encendido/apagado aleatorio por departamentos.
Y como cuando el diablo no tiene qué hacer..., y yo no tengo ese apéndice, se me ocurrió que estaría mejor si esos efectos pudieran ser variados y seleccionables por el modelista..., y al alcance de los pobres que sólo disponemos de un 'antiguo' Lokmaus; es decir que el circuito incluyera un decodificador de funciones (muy, muy básico) con las que controlar esos efectos.
Y ahí acabó arduino (por eso la interrogación en el título). Hasta donde probé, ni con el manejo de las interrupciones ni con sus funciones como 'pulseIn()' pude tener una lectura fiable de lo que hay en la vía. Así que di el salto hacia la programación en lenguaje c directamente, lo que me trajo no pocos sinsabores, pero de momento está funcionando.
De momento, saludos.
Germán
continuará...
-------------------------------------------------------
Edito para incluir aquí el archivo con la documentación del tema