08 junio 2019

Matriz de leds


Matriz de leds (8x8


Una matriz LED es un display formado por múltiples LED en distribución rectangular. Existen distintos tamaños, siendo el más habitual los cuadrados de 8×8 LED.
Tenemos un integrado muy extendido del fabricante Maxim, el MAX7219 que nos hace reconciliarnos con las matrices LEDsy hasta con los displays de 7 segmentos. Sus características son:

  • -  Entrada y salida en serie
  • -  Necesita menos pines.
  • -  Controla displays de 7 segmentos de hasta 8 dígitos.
  • -  Bar graphdisplays o Barras de LEDs.
  • -  Matrices de 8×8 o hasta 64 LEDs individuales.
  • -  Solo requiere una resistencia externa para los 64 LEDs.
  • -  Incluye decodificador BCD (No hay necesidad de dibujar matrices de
    caracteres, las lleva incluidas. Mayúsculas, minúsculas y hasta números y
    signos).
  • -  Se encarga del multiplexado de los caracteres y dígitos.
  • -  Incluye memoria de los caracteres.
  • -  Es compatible con SPI y QSPI.
    Así que la única razón para manejar cualquier tipo de displays LED a mano y cableando, es la de comprender un circuito y aprender pero en el mundo real usaremos un chip de este estilo, porque nos ahorrará muchas horas de trabajo.



EL PROGRAMA DE CONTROL

Para manejar el array, existe disponible una librería de control, llamada LedControlMS (incluida en el CD).
Una vez que la hayáis instalado con, debéis lo primer hacer el include correspondiente:

#include "LedControlMS.h"

Después indicar cuantos displays vamos a usar, uno de momento y crear una instancia de la clase LedControl, pasándole los pines de control y el número de matrices.

#define NumMatrix 1
LedControllc=LedControl(12,11,10, NumMatrix);

Cuando arrancamos las matrices están en modo standby. Hay que levantarlas

for (inti=0; i<NumMatrix ; i++)
{
lc.shutdown(i,false); // Activar la matriz
lc.setIntensity(i,8); // Poner el brillo a un valor intermedio
lc.clearDisplay(i); // Y borrar todo
}

Y ya solo queda escribir el mensaje:

lc.writeString(0,"Uso de la matriz de leds");

En resumen, el programa completo para escribir un mensaje quedaría así:


#include "LedControlMS.h"
#define NumMatrix 1 // Cuantas matrices vamos a usar LedControllc=LedControl(12,11,10, NumMatrix); // Creamos una instancia de LedControl
void setup()
{
for (inti=0; i<NumMatrix ; i++)
{
lc.shutdown(i,false); // Activar las matrices lc.setIntensity(i,8); // Poner el brillo a un valor intermedio lc.clearDisplay(i); // Y borrar todo
}
}
void loop()
{
lc.writeString(0," Curso Arduino ");
delay(1000);
}

No hay comentarios:

Tarjeta multifuncional que permite conectar la tarjeta Arduino MEGA y desarrollar aplicaciones gracias a los módulos que incorpora directa...