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 decaracteres, las lleva incluidas. Mayúsculas, minúsculas y hasta números ysignos).
- - 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 1LedControllc=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:
Publicar un comentario