Control de muchos LED con pocos pines GPIO

12

Completé con éxito mi hardware "hello world" usando esta guía:

http://www.raspberrypi-spy.co.uk/2012/06/control-led-using-gpio-output-pin/

Ahora me gustaría pasar a cosas más grandes y brillantes, ¡más LED controlados individualmente! Obviamente, el siguiente paso es quitar la fuente de voltaje de la Raspberry Pi y agregar más LED, pero eventualmente me quedaré sin pines GPIO, así que supongo que lo que necesito ahora es controlar un circuito que de alguna manera sepa , basado en GPIO "señales codificadas", qué LED encender y apagar. ¿Qué tipo de ejemplos de circuito debo buscar? Y lo que es más importante con respecto a la Raspberry Pi, ¿podría o rpi.gpio causar algún problema, tal vez con respecto al tiempo de la señal?

SkyNT
fuente
Muliplexing reducirá radicalmente la cantidad de GPIO que debe usarse, junto con Persitance of Vision mediante el uso de PWM para reducir aún más GPIO o crear matrices grandes con GPIO mínimo. Esto ya ha sido respondido aquí.
Piotr Kula

Respuestas:

13

Lo que está buscando en ese caso es una matriz de LED . Puede controlar esta matriz desde los pines GPIO, pero eso todavía limita la cantidad de LED que puede conectar (el tamaño de la matriz) y también puede comenzar a consumir demasiada corriente si no tiene cuidado.

Una mejor opción es conectar una matriz de LED al bus I2C, utilizando uno o varios extensores de E / S I2C. De esa manera, puede crear una matriz de gran tamaño (64 LED, por ejemplo, se pueden hacer con UN extensor de E / S de 16 bits). Otra razón para usar estos extensores de E / S es que son un poco más robustos, pueden proporcionar un poco más de corriente y mantienen su CPU principal fuera de peligro.

En este sitio, estos extensores de E / S se analizan varias veces, por lo que debería poder encontrar información sobre estos bastante fácil. Este enlace proporciona información sobre estos extensores y una matriz (aunque se utiliza para la entrada, pero básicamente es la misma idea, pero no utiliza la matriz para escanear sino para dirigir los LED)

El único requisito adicional para hacer una matriz de trabajo suave es que debe hacer que la matriz no sea más grande, entonces el RPi puede actualizar cada LED individual al menos 20 veces por segundo, de lo contrario, comenzará a ver parpadeo, pero esto también se explica en el primer enlace (párrafo "Multiplexación y persistencia de la visión").

ikku
fuente
Esto es muy interesante. Gracias por la lectura! Podría intentar esto a pequeña escala usando los pines GPIO antes de estar listo para pasar a los extensores. He realizado algunas pruebas con los pines GPIO y hasta ahora he podido obtener una multiplexación satisfactoria. No estoy preocupado por la corriente, ya que solo usaré el Pi para cambiar una corriente externa. ¿Escalará bien? Probablemente no, pero de todos modos estoy aquí principalmente para la lección.
SkyNT
3

He utilizado el expansor de puerto MCP23017 I²C para hacer este tipo de cosas. Siga este enlace para encontrar un código de muestra para la frambuesa pi. Puede manejar 16 LEDS por chip y 8 chips sin necesidad de multiplexar.

John La Rooy
fuente