Multiplexación de matriz LED grande

Tengo un proyecto que consiste en construir una matriz LED de 64 x 48 (3072) impulsada por una computadora Raspberry PI. Soy un estudiante de ingeniería informática de primer año, por lo que todavía no tengo experiencia con los registros de desplazamiento y los multiplexores. Me pregunto cuál sería la forma más eficiente de multiplexar estos LED. Algunas de mis opciones incluyen los multiplexores MAX7219 o los registros de desplazamiento 74HC595 . En particular, estoy interesado en saber cuánto de cada chip se requeriría para multiplexar esta matriz y cuál sería la mejor manera de hacerlo.

Además, en términos de energía, estaba pensando en usar una fuente de alimentación como esta para alimentar todos estos LED. ¿Funcionaría eso o me enfrentaría a problemas de brillo y consumo de energía al accionar todos estos LED a la vez?

También me interesa escuchar consejos o ideas de alguien con experiencia en un proyecto similar en términos de cosas que podrían salir mal en un proyecto tan grande con tantos LED y cómo puedo prevenirlas.

Los LED son de color rojo súper brillante de 3 mm (5 candelas) con una clasificación de voltaje de CC de 1,9-2,1 y corriente directa de 20 mA.

Si simplemente multiplexa los LED, nunca se pueden activar todos a la vez: ¿es esta última parte una necesidad real y, de ser así, por qué?
¿Podría resolver el conflicto entre " Multiplexar " y " alimentar todos estos LED "? ¿Cuál es?
@AnindoGhosh Tengo la intención de usar multiplexación, así que supongo que ninguno de ellos estará encendido al mismo tiempo.

Respuestas (2)

Hmm, comencemos primero con la potencia: 3072 * 20mA * 2.1 = 130 W.

Su fuente de alimentación solo puede darle unos 5W. Eres muy bajo allí.

Si puede, reduzca en gran medida el tamaño de su matriz.

Una solución sería usar una fuente de alimentación ATX de escritorio. Esos tienen líneas de 5V a través de su conector de disco duro y pueden darle mucha energía. Si toma los 5V, deberá diseñar controladores LED o estará quemando (5V - 2.1V) * 20mA * 3072 = 180W. ¡Son 180 vatios de calor, hijo! Eso no va a ser bueno, cómodo o usable. Entonces, realmente necesita diseñar un controlador LED eficiente.

El problema principal con los LED de conducción es que su caída de voltaje no es consistente para la misma corriente entre diferentes lotes, lo que significa que un LED caerá 2.0 y otro 2.1. Si solo los alinea y les da 5V, obtendrá variaciones notables.

Puede comprar controladores LED eficientes y Google es su amigo, pero no su mejor amigo. Porque encontrará sus controladores para controlar una cadena de LED, no uno solo. Desea que los LED se controlen individualmente, por lo que deberá colocar un regulador en cada uno de estos (es decir, 3072 copias individuales del mismo circuito) y luego habilitarlos/deshabilitarlos. Eso es mucho trabajo.

Sí, puede usar registros de desplazamiento para controlar cada regulador. La forma en que conecta los registros de desplazamiento depende en gran medida de la "velocidad de fotogramas" que desea obtener al controlar estos LED. No voy a ir allí ahora porque, como puede ver, la potencia/diseño para controlar cada LED individual es bastante alta y compleja.

Sus cálculos de energía solo serían correctos si todos los LED estuvieran encendidos todo el tiempo. La mayoría de las matrices multiplexan de tal manera que solo un LED en un grupo de tantos está encendido a la vez, de esa manera, se comparte el control de un banco completo.
Asumo que quiere mostrar algún tipo de patrón y asumo que en algún momento quiere que todos estén encendidos, aunque sea por 1 segundo. Dijo en su pregunta que quiere saber si la fuente de alimentación sería buena para encender todos estos LED a la vez . Por lo tanto, los cálculos del peor de los casos.
Sí, eso es cierto, pero todos los LED encendidos a la vez no estarían multiplexados.
Correcto. Pero parece que quiere controlar toda la matriz, pero está tratando de descubrir cómo hacerlo y está usando el término "múltiple" de manera vaga.
@EEToronto Gracias por su respuesta (casualmente, soy estudiante en Toronto). Tengo la intención de multiplexar, así que supongo que solo una columna estará encendida a la vez y la potencia es mucho más manejable, pero si estoy multiplexando entre tantas columnas a la vez, ¿debería preocuparme de que el brillo de los LED sea reducido drásticamente? Además, ¿cuántos registros de desplazamiento se necesitarían para controlar la matriz de 64 x 48?
Bueno, depende de lo que quieras decir con que solo una columna esté encendida a la vez. ¿Quiere decir que "parpadea" una columna una vez y luego pasa a la siguiente columna para que aparezca una sola imagen? ¿Básicamente refrescando tu "pantalla"? Si es así, sí, porque cada columna estará encendida durante 1/48 de segundo. Por otro lado, si quiere decir que solo se encenderá una columna para una imagen determinada, entonces no, porque esa columna se encenderá durante toda la duración.
En cuanto a cuántos registros de desplazamiento, bueno, tiene 3072 LED. Suponiendo registros de desplazamiento de 8 bits, tendrá que conectar en cadena 384. Si solo está haciendo una columna a la vez, puede usar un esquema de "OR" y salirse con la suya con 48+64 registros de desplazamiento. Selecciona su columna usando un conjunto de registros y configura cada LED en esa columna para encenderlo o apagarlo usando el otro conjunto de registros.
@EEToronto Me refiero a lo primero, por lo que solo una columna estará encendida en cualquier momento para multiplexar entre ellas. ¿Hay alguna forma de evitar esto? Es fundamental para mi proyecto que los LED sean brillantes. Estaba pensando en adoptar un enfoque de "divide y vencerás" y dividirlo en matrices más pequeñas para administrar el brillo de manera más efectiva. ¿Crees que es una buena idea o hay una mejor manera? Además, en cuanto a los registros de desplazamiento, solo necesitaría 14 chips 74HC595 ya que cada uno tiene 8 salidas de datos, ¿no?
No, no hay forma de evitarlo. Si desea iluminar solo una columna, luego pase a la siguiente, luego a la siguiente, etc. matemáticamente, cada una solo estará encendida durante 1/48 de segundo, por lo tanto, tendrá 1/48 de brillo. Puede pulsar el LED para tener más brillo, pero quemará más energía (es menos eficiente por unidad de salida de luz) y es mejor poner esa energía para iluminar 2 o 4 columnas a la vez. En términos de registros de desplazamiento, si usa el esquema 48 + 64, entonces sí, solo necesitará 14 registros para un total de 112 salidas.

Hace mucho tiempo construí una matriz de LED (más de 20 años), todavía tengo el código de ensamblaje para ello. El diseño básico era que solo se alimentaba una columna de 8 LED de profundidad y, en función del tiempo compartido, la multiplexación de sus ojos lo veía como una fuente de un personaje o alguna otra imagen (pac man, creo recordar). Entonces, si bien hay chips que probablemente hacen mucho más ahora que lo que hicieron (ahora estoy jugando con el raspbery pi), es solo que supongo que el poder para iluminar esa columna y las filas y luego sigue adelante y haz eso en una frecuencia que lo hace parecer sólido a la vista.