In acest articol vom folosi o matrice de leduri 8x8 cu 4 module pentru a afisa diferite texte si elemente grafice. Aceasta matrice are la baza driverul MAX7219 pentru a comanda toate ledurile cu ajutorul a 3 pini digitali ai Arduino Uno.
Modulul se alimenteaza cu o tensiune de 5V iar restul conexiunilor se fac dupa cum urmeaza:
| Arduino Uno | Matrice led |
| D11 | DIN |
| D13 | CLK |
| D4 | CS |
Un astfel de modul costa 33 Lei si poate fi achizitionat de aici.
O imagine a acestui modul este mai jos:

Pentru a putea folosi acest modul va trebui sa descarcam si sa instalam o librarie aditionala. Aceasta librarie se numeste Simple Led Matrix si se poate descarca de aici. Dupa descarcarea acestei librarii o vom instala accesand meniul Schita > Incarcare biblioteca > Adaugare biblioteca.zip.
Un sketch in care putem testa matricea de leduri este mai jos:
#include "simple_matrix.h" //importam libraria simple_matrix
#define NUMBER_OF_DISPLAYS 4 //definim numarul de matrici cu leduri - in acest caz 4
//declaram primul array grafic
uint8_t BITMAP_1[] = {
0b10000,
0b111111,
0b1000001,
0b10001111,
0b10001111,
0b1000001,
0b111111,
0b10000,
0b0,
0b0,
0b0,
0b0,
0b0,
0b0,
0b0,
0b0,
0b0,
0b0,
0b0,
0b0,
0b0,
0b0,
0b0,
0b0,
0b111100,
0b1000010,
0b10110101,
0b10000101,
0b10110101,
0b10001001,
0b1000010,
0b111100
};
//declaram al doilea array grafic
uint8_t BITMAP_2[] = {
0b110000,
0b1001000,
0b1000100,
0b100010,
0b1000100,
0b1001000,
0b110000,
0b0,
0b100,
0b11110,
0b1111110,
0b11110,
0b100,
0b0,
0b0,
0b0,
0b0,
0b110,
0b110,
0b11111100,
0b1000000,
0b100000,
0b0,
0b0,
0b0,
0b100,
0b111100,
0b1000110,
0b10000110,
0b1000110,
0b111100,
0b100
};
//declaram al treilea array grafic
uint8_t BITMAP_3[] = {
0b1111100,
0b11000100,
0b10100100,
0b10010100,
0b10100100,
0b11000100,
0b1111100,
0b0,
0b111000,
0b1000100,
0b10101010,
0b10001010,
0b10001010,
0b10101010,
0b1000100,
0b111000,
0b0,
0b0,
0b0,
0b0,
0b0,
0b0,
0b0,
0b0,
0b0,
0b100,
0b1110,
0b11111100,
0b10000000,
0b10000100,
0b10001110,
0b11111100
};
//pin DIN -> D11
//pin CLK -> D13
//pin CS -> D4 - este declarat in urmatoarea linie de cod
simpleMatrix matrice(4, NUMBER_OF_DISPLAYS); //primul parametru este terminalul CS, al doilea parametru este numarul de matrici conectate
const char text_1[] PROGMEM = "www.electronicstore.ro"; //declaram primul array cu text
const char text_2[] PROGMEM = "Testare matrice de leduri..."; //declaram al doilea array cu text
#define textDelay 100 //definim intarzierea in milisecunde la afisarea cu scroll a textului
void setup(){
matrice.begin(); //initializam libraria
}
void loop(){
matrice.setIntensity(0x04); //setam intensitatea ledurilor intre 0x00 si 0x15
matrice.scrollTextPROGMEMRightToLeft(text_1, textDelay); //afisam primul array cu text
delay(1000);
matrice.sendColumnBuffer(BITMAP_1, 4*8, 0); //afisam primul array grafic
delay(2000);
matrice.scrollTextPROGMEMRightToLeft(text_2, textDelay);
delay(1000);
matrice.sendColumnBuffer(BITMAP_2, 4*8, 0);
delay(2000);
matrice.clearDisplay(); //stingem toate ledurile din matrice
delay(1000);
matrice.print("Test");
delay(2000);
matrice.print(" text");
delay(2000);
matrice.print(" fix");
delay(2000);
matrice.clearDisplay();
delay(1000);
matrice.sendColumnBuffer(BITMAP_3, 4*8, 0);
delay(2000);
matrice.scrollText("Multumim pentru vizualizare!", textDelay); //afisare cu scroll a unui text
delay(1000);
exit(0); //oprfgim executia programului
}
Dupa cum putem observa in codul anterior am folosit si cateva elemente grafice. Pentru a putea folosi aceste elemente grafice va trebui sa le incarcam intr-un array. Pentru a crea o grafica personalizata putem folosi un generator care poate fi gasit pe acest site. De pe acea pagina putem descarca fisierul 4-Matrix.exe pe care-l vom rula pentru a crea propriile elemente grafice. La rulare acest are urmatoarea interfata:

Un filmulet cu functionarea montajului si a sketchului se poate vedea in filmuletul de mai jos: