Fondo:
Soy Ingeniero Civil especializado en dispositivos de control de tráfico y tengo un pequeño proyecto de hobby para construir un sistema de semáforo modelo a escala. Puedo administrar y controlar la programación de patrones de semáforos por mi cuenta usando una Raspberry Pi (además, esto me da la capacidad de implementar un control dinámico y programado, e interactuar con un esquema de control de tráfico serio y posiblemente con datos de tráfico reales). Solo necesito ayuda con el cableado de muchos LED en el lado del hardware :)
Seguí este tutorial http://www.raspberrypi-spy.co.uk/2012/06/control-led-using-gpio-output-pin/ muy bien (incluido el uso de una fuente de alimentación externa en lugar del Pin 2), pero Es probable que me encuentre con el problema de muy pocas conexiones GPIO para todos los semáforos.
A continuación, probé la multiplexación con una matriz LED http://www.appelsiini.net/2011/how-does-led-matrix-work . La multiplexación funciona, sin embargo, las luces suelen ser más tenues, dudo que esto se escale bien, y esto tiende a aumentar la complejidad del control.
Pregunta central:
Además de obtener una tarjeta de expansión en Raspberry Pi, ¿hay algún otro truco que pueda usar para controlar varios LED con menos señales 0/1?
Una cosa acerca de los semáforos es que generalmente vienen en bloques de tres, de los cuales solo uno está activo a la vez. ¿Hay algún circuito relativamente simple que me permita 'alternar' un bloque de LED usando una sola señal 0/1?
¿Está familiarizado con los registros de desplazamiento como 74HC595? Requiere 3 pines de su RPI y puede controlar 8 líneas de salida. Puede conectarlos fácilmente en cascada controlando de manera efectiva n × 8 líneas de salida.
Los datos se sincronizan en serie en el registro de desplazamiento y, una vez que se transfieren los 8 bits de salida, los bloquea en las salidas.
Estaba a punto de agregar la hoja de datos aquí, pero https://www.sparkfun.com/products/733 muestra un buen video y también tiene un enlace a la hoja de datos.
Los registros de desplazamiento como sugiere jippie funcionan bien. Pero también se puede hacer que la multiplexación funcione para más LED de los que cabría esperar. La solución al brillo reducido es aumentar la corriente máxima para que la corriente promedio permanezca igual. Puede hacer esto aumentando el voltaje o reduciendo la resistencia limitadora de corriente.
La razón por la cual la corriente excesiva daña un LED es que la unión se sobrecalienta. Si se le da tiempo para que se enfríe entre pulsos, los pulsos pueden ser más fuertes. La hoja de datos de su LED debe especificar tanto una corriente promedio máxima como una corriente pico máxima que no debe excederse. Si no está demasiado preocupado por la alta confiabilidad (un proyecto de pasatiempo, no una nave espacial) y no le importa fumar algunos LED o cambiar un poco las reglas, siempre puede probar los límites usted mismo.
Además, busque en charlieplexing una forma de multiplexar más LED desde una cantidad menor de pines. El límite superior de la cantidad de LED que se pueden conectar con este método suele ser el brillo que se puede lograr con la corriente disponible de los pines GPIO, no la cantidad de pines.
Lectura adicional: ¿Pulsar un LED a una corriente más alta produce un mayor brillo aparente?
Use USB o Ethernet para controlar las luces a través de una placa de relé de bloqueo como esta
http://www.robot-electronics.co.uk/acatalog/Relay_Modules.html
He usado estas placas para otras aplicaciones y son excelentes.
ShimoFuri
PedroJ
phil escarcha
Chetan Bhargava