Matriz de leds 8x8 I2C

Las matrices de leds son una agrupación de leds en forma de matriz, las más comunes están formadas por 8 filas y 8 columnas, teniendo un total de 64 leds.




Los módulos de matriz de leds 8x8 suelen incorporar un driver que simplifica el el control de cada led, este driver a su vez se controla por SPI o I2C según el módulo elegido.








ArduinoBlocks implementa el control de matrices de leds 8x8 con conexión I2C. Es un sistema muy sencillo para añadir una matriz de este tipo a nuestros proyectos.



La conexión a Arduino UNO quedaría así:





La programación empieza con la inicialización. Debemos asignar un ID (número del 1 al 8) a una dirección I2C.

Ejemplo para inciar una matriz de leds a la dirección por defecto 0x70:





En caso de utilizar más de una matriz en el mismo bus I2C, podemos configurar cada una de ellas a una dirección diferente:


La dirección será 0x70 + el valor de los 3 bits de configuración (0.... hasta 7).
Por lo tanto la posible dirección será una entre 0x70 y 0x77


Ejemplo de inicialización de dos matrices de leds:






Limpiar: apaga todos los leds, borrando así cualquier dibujo en la matriz de leds


Rotar: gira la pantalla. Esta opción es útil cuando debemos poner la pantalla de lado o al revés en nuestro proyecto por cuestiones de espacio o diseño.




La matriz de leds es como una pequeña pantalla, monocromo y de poca resolución (64 píxeles en total) pero eso no impide que podamos utilizar funcionar gráficas para realizar dibujos sobre ella:

El sistema de coordenadas X,Y  X=Columna, Y=Fila
siendo 0,0 (superior, izquierda) hasta 7,7 (inferior,derecha)

Píxel: permite "iluminar" o "apagar" un píxel de la matriz a partir de sus coordenadas X,Y

 Línea: dibuja una línea desde la coordenada origne X1,Y1 hasta la coordenada X2,Y2


Rectángulo: dibujo un rectángulo siendo las coordenadas X1,Y1 una esquina y X2,Y2 la esquina contratria.
Círculo: dibuja un círculo siendo X,Y la coordenada central y especificando el Radio
Texto: permite mostrar un texto en las coordenadas indicadas, normalmente cabe una letra y poco más, pero podemos usar coordenadas negativas para que el texto se salga de la pantalla y de forma sencilla hacer efectos "scroll"




Bitmap: estos son quizás los bloques más divertidos, pues permiten definir un mapa de bits que definirá el patrón a mostrar en la matriz de leds.

Existe un bloque con bitmaps predefinidos:

Por otro lado podemos definir nuestros propios bitmaps con el siguiente bloque y siguiendo unos sencillos pasos:



Arrastramos el bloque "bitmap" y con el botón derecho pulsamos en la opción "ayuda"
Se abrirá una nueva ventana en el navegador con el editor de bitmaps:


Mediante este editor podemos definir nuestro propio bitmap... ¡saca tu lado artístico!
Una vez diseñado, hacemos click en "copy data" y se copiarán en el portapapeles del sistema los datos que representan el bitmap diseñado:



Volvemos al editor de ArduinoBlocks y pegamos el código del bitmap en el bloque:



Programa de ejemplo para probar la matriz de leds:

http://www.arduinoblocks.com/web/project/74849

Video del programa en funcionamiento:



Comentarios

Entradas populares de este blog

Publicar y almacenar datos en Internet con ThingSpeak

Dashboard MQTT con Adafruit IO y ArduinoBlocks

Utilizar ESP-01 como periférico WiFi en ArduinoBlocks (parte I)