Led mátrix max7219 ic-vel


Ebben a cikkben a kinaiak által már régóta forgalmazott led mátrix forraszd magad egységcsomagot hívtuk életre.

A forrasztásról röviden:
Az összeforrasztás legfontosabb szabálya a méret szerinti beforrasztás, tehát az alacsony alkatrészeket az elején a magasakat a végén forraszuk be.
Az alkatrészek beültetési oldala a feliratos rész, a felirat nélküli oldalon
forrasztjuk be a lábakat. Az ic kitörése a panel felső részén lesz behelyezéskor (a feliratoknak megfelelően), illetve a led mátrix típus jelzése a panel alsó részénél.

A led mátrix bekötése:
led mátrix   Arduino
    VCC          +5V
    GND        GND
     DIN          12
     CS           10
    CLK          11

A led mátrix kezeléséhez a következő helyről tölthetünk le könyvtárat:

https://github.com/wayoda/LedControl

Kicsomagoljuk, átnevezzük LedControl-ra, majd bemásoljuk a Arduino / Libraries könyvtárába. Az arduino IDE újra indítása után meg is jelenik a fájl menü / Példák / LedControl almenü, amiből a LCDemo matrix példát nyissuk meg.

A példában van kiíratás, oszlop és sor kezelés valamint bitenkénti kiíratás.
Azért megtárgyaljuk:

#include "LedControl.h"
LedControl led = LedControl(12,11,10,1);

void setup() {
led.shutdown(0,false);
led.setIntensity(0,1);
led.clearDisplay(0);
}

void loop() {
led.setLed(0,0,0,true);
display(1000);
led.setLed(0,0,0,false);
display(1000);
}


Evvel a programmal egyetlen egy led villogtatását hajtjuk végre.
Nézzük a progi felépítését:

LedControl led = LedControl(12,11,10,1); – létrehozzunk egy led nevű
LedControl osztály objektumot, valamint hozzárendeljük az arduino kimeneteket.


A setup-ban található három utasítás:
led.shutdown(0,false); – a kijelző kikapcsolása, az első értékkel ne foglalkozzunk, az csak egy nullás címzés ami alapértelmezett egy mátrix esetén. A második paraméter: false érték kijelző bekapcsolva, true érték kijelző ki.

led.setIntensity(0,1); – a kijelző ledjeinek fényereje, 0 a leggyengébb, 15 legerősebb.

led.clearDisplay(0); – kijelző törlése.

led.setLed(0,0,0,true); – egy led bekapcsolása. Első paraméter cím, második x koordináta, harmadik y koordináta, negyedik a megjelenítés, ha true akkor bekapcsolja az adott ledet, ha false akkor kikapcsolja.

Nézzünk most egy sor beállítást:

led.setRow(0,0,B10101010);
delay(200);
led.setRow(0,0,B01010101);
delay(200);
led.setRow(0,0,B10101010); – végzi a soronkénti kiíratást. Első paraméter a cím, második az oszlop száma, harmadik az oszlopba kiíratott érték. Ezt legegyszerűbb bináris szám ként megadni, de decimális is beírható.

Mivel ugyan azt a sort íratjuk újra ezért nincs szükség törlésre.

Nézzünk egy oszlopkezelést is:

led.setColumn(0,3,B11000011);
delay(200);
led.setColumn(0,3,B00111100);
delay(200);


led.setColumn(0,3,B11000011); – oszloponkénti kiíratás. Első érték a mátrix címe, a második az adott oszlop, a harmadik az oszlopba kerülő bináris érték.

Kiírathatunk karaktereket vagy bármilyen bit mintát, de csak ez a három utasítás segíthet benne.


#include "LedControl.h"
LedControl led = LedControl(12,11,10,1);
byte kep[8] = {B00111100,B01000010,B10100101,B10000001,
B10100101,B10011001,B01000010,B00111100};

void setup() {
led.shutdown(0,false);
led.setIntensity(0,0);
led.clearDisplay(0);
}

void loop() {
for(int i=0;i<8;i++)
led.setRow(0,i,kep[i]);
}


Egy tömbben eltárolt mintát íratunk ki egy számlálós ciklusba ágyazott soronkénti kiíró utasítással.
Ugyan evvel a technikával betűket, karaktereket lehet kiíratni, vagy több led mátrixot összefűzve szavakat, mondatokat is megjeleníthetünk a kijelzőkön.


Ugyan evvel az ic-vel szerelnek 8digit-es hét szegmenses kijelzőket is
A letöltött könyvtárban is van két utasítás ami számokat illetve betűket jelenít meg a digiteken. Ezt nem áll módomba tesztelni.

Próba progi tesztelhető a fájl menü / Példák / LedControl almenüből az LCDemo7Segment sketchel.