¿Cómo puedo conectar este 8x8 rgb llevado a un arduino?

0

He mirado a mi alrededor en busca de ejemplos, pero sigo encontrando LED de un solo color o, en el mejor de los casos, un LED de dos colores, pero todavía tengo que ver cómo conectar una verdadera matriz de 8x8 RGB LED a Arduino, ¿es esto posible?

Donde estoy confundido es que hay más pines en el 8x8 que Arduino, ¿cómo puedo controlar cada luz individual? Estoy bien con la programación, pero no con las conexiones.

He adjuntado la hoja de datos para aquellos que tienen curiosidad.

    
pregunta Jacksonkr

3 respuestas

2

Puede usar registros de desplazamiento, sin embargo, si desea controlar los leds que no sean de encendido / apagado, es más conveniente tener un IC con controlador PWM integrado para todos los LED.

Por ejemplo, puede utilizar TLC5947 o un IC similar. Puede enviarle información en serie y el IC emitirá los LED a la intensidad que desee. También puede conducir sus leds con corriente constante, por lo que no se necesitan transistores externos (o resistencias en serie).

Si no te gusta crear una PCB para un IC de este tipo, Adafruit incluso vende breakoutboards para este IC en particular.

Sin embargo, todavía necesitarás un registro de desplazamiento para controlar las filas.

    
respondido por el Douwe66
1

Recomendaría usar un demultiplexor en un lado y posiblemente un registro de desplazamiento en el otro. La idea con estas pantallas de matriz es que encienda una fila a la vez y luego recorra las filas con una frecuencia alta. El uso de un multiplexor para seleccionar la fila es un buen compromiso para la reducción del número de pines: solo necesita 3 pines de E / S para seleccionar la fila que desea en una pantalla de 8x8. Por otro lado, debe poder abordar todos los pines, por lo que un demux no es suficiente. En su lugar, conecte los pines directamente (si hay suficientes pines libres) o use un registro de desplazamiento y cargue una fila a la vez. Esto realmente funciona bastante bien si obtiene un registro de desplazamiento con un pestillo, ya que puede desplazarse en una fila completa mientras la fila anterior está encendida, lo que hace que la demora requerida para la persistencia de la visión sea el tiempo necesario para cargar los registros de desplazamiento. . Necesitará 3 registros de desplazamiento de 8 bits en serie para obtener los tres colores en cada columna. En realidad, no es necesario que estén en serie. Si lo desea, puede tener una línea de datos separada para cada color, aunque esto no es realmente necesario para una pantalla de 8x8.

    
respondido por el alex.forencich
1

Puede considerar la matriz como tres matrices 8x8 que comparten los pines de la fila (ánodo común). Para conducir 1 matriz, usaría un demultiplexador de 3 a 8 para conducir una fila y tirar de los cátodos a la posición baja para los LED en esa fila que desea iluminar. Tenga en cuenta que las salidas del demultiplexador deben controlar hasta 8 LED en una matriz, e incluso hasta 24 LED en una matriz RGB. No pueden suministrar la corriente requerida, por lo que necesitará transistores para aumentar la corriente.
Para una matriz, esto requeriría 3 + 8 pines, lo cual está bien dentro de las capacidades de Arduino. Para 3 matrices, sin embargo, necesitarías 3 + 3 * 8 = 27 pines, y eso es demasiado.
Solución: en lugar de conectar los 8 cátodos directamente al Arduino, use un registro de desplazamiento bloqueado como el 74HC595. Solo requiere 3 pines (datos, reloj y latch) y puedes conectarlos en cascada, por lo que solo necesitas 3 + 3 pines de Arduino.

Algoritmo:
- Cambie 24 "1" s en los HC595 para apagar los LEDs
- trabe el HC595s
- seleccione la siguiente fila (siguiente valor binario para demultiplexer
- cambie los 24 bits para la nueva fila (8 rojo, 8 verde, 8 azul) en el HC595s
- enclavar los HC595 para activar los LEDs
- espere la próxima línea de escaneo, 1 ms es un buen momento

    
respondido por el Joris Groosman

Lea otras preguntas en las etiquetas