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:

 

Nu sunt comentarii

Acest website foloseste cookie-uri pentru o experienta placuta in timpul navigarii.