Inicio » Electronica » Arduino » Matriz de LEDs 8×8 Max7219

Matriz de LEDs 8×8 Max7219

Aprende a utilizar la matriz de LEDs 8×8 Max7219. El robot DYOR utiliza la matriz de LEDs para generar expresiones a través de la boca. Incluimos la descripción de funcionamiento y ejemplos de uso con Facilino y Arduino.

¿Cómo funciona la matriz de LEDs?

Al igual que la pantalla de un ordenador o móvil, que están compuestas por píxeles, la matriz de LEDs 8×8 dispone de hasta 64 LEDs rojos con los que podemos dibujar casi cualquier cosa, de hecho tenemos un total de 18446744073709551616 combinaciones!

El módulo de matriz LEDs se comunica a través del bus SPI (Serial Programming Interface) con Arduino, se trata de un protocolo de comunicación serie muy común entre dispositivo y controlador bidireccional que requiere de 4 líneas (una de habilitación o carga de datos, otra de reloj, una para los datos de entrada y otra para los datos de salida). No obstante, dado que la comunicación entre el Arduino y el módulo de matriz LEDs es unidireccional, sólo necesitaremos 3 líneas: la señal CS (Chip Select), a veces conocida por LOAD, permite habilitar el dispositivo para recibir información, la señal DIN es la entrada de datos (del módulo) y la señal CLK es la señal de reloj.

Arduino dispone de un bus SPI, pero su interfaz de programación todavía no dispone de instrucciones sencillas de acceso al mismo, con lo que se suelen generar con instrucciones de escritura directamente en los pines de entrada o salida de Arduino, siendo el usuario el que debe generar la secuencia correspondiente para enviar el dato al dispositivo.

En el robot DYOR la matriz está normalmente colocada como se muestra en la siguiente figura:

Para ello, debemos enviar, por cada fila (F1 a F8, que en realidad son columnas en la imagen) el número correspondiente binario. Así pues, para generar la figura anterior debemos enviar los siguientes números:

F1=0

F2=2^2=4

F3=2^1+2^2+2^7=134

F4=2^0+2^1+2^2+2^3+2^4+2^5+2^6+2^7=255

F5=2^0+2^1+2^2+2^3+2^4+2^5+2^6+2^7=255

F6=2^7=128

F7=0

F8=0

¿Cómo se conecta?

Tal y como se ha comentado, la conexión del módulo de matriz de LEDs require de tres señales además de la alimentación y la masa. Las señales podemos conectarlas a cualquiera de las señales de Arduino:

  • VCC: Alimentación. Conectar a los pines de +5V.
  • GND: Masa. Conectar a los pines 0V (GND).
  • CS: Salida digital. Conectar a los pines digitales de Arduino.
  • DIN: Entrada digital. Conectar a los pines digitales de Arduino.
  • CLK: Salida digital. Conectar a los pines digitales de Arduino.

A continuación se muestra un ejemplo de conexión a Arduino Nano v3.0 con placa de expansión. Las señales CS, DIN y CLK se han conectado a los pines 10, 12 y 11, respectivamente. Los pines VCC y GND se pueden conectar a cualquiera de las filas de alimentación y masa del módulo de expansión de entradas de Arduino Nano v3.0.

 

Aquí podéis descargar el fichero Fritzing:

¿Cómo utilizarlo?

La programación de la matriz de LEDs es sencilla. Por un lado se dispone de una instrucción específica para la boca del robot DYOR con la que se puede generar un conjunto de expresiones ya predefinidas para expresar emociones. Además, se puede generar nuestro propio abanico de expresiones o dibujos de forma muy intuitiva.

Por ejemplo, para expresar un cabreo utilizaremos una de las expresiones predefinidas tal y como se muestra a continuación (en este primer ejemplo se utilizan en la secuencia de inicio de Arduino):

Aquí podéis descargar el fichero Facilino:

En un segundo ejemplo, ahora pretendemos que el robot alterne de una expresión a otra, repitiéndose dentro del bucle principal:

Aquí podéis descargar el fichero Facilino:

Por otro lado, si queremos hacer una expresión diferente a las predefinidas, entonces debemos indicar fila a fila cuales son los valores que queremos enviar. El programa ya tiene en consideración el hecho de que la matriz de LEDs está girada y por tanto debemos literalmente dibujar la expresión que queremos que aparezca (esto es bastante intuitivo y los alumnos no tienen porqué dominar los conceptos de generación de números binarios):

Aquí podéis descargar el fichero Facilino:

A continuación os incluimos un ejemplo de cuenta atrás del 10 al 0: