Arduino LED matice je stavebnice, která obsahuje řídící obvod MAX7219. Tento logický obvod umožňuje řídit velké matice LED diod, kdy v tomto případě je dodávána matice o velikosti 8x8 červených LED diod. Deska s modulem obsahuje na dvou stranách propojovací piny, díky kterým je možné propojit více modulů do kaskády a pak je řídit jednotlivě pomocí Arduina. LED matice vyžaduje pro svou funkci napájecí napětí o velikosti 5 V a proudový odběr může dosáhnout až několika desítek miliAmpér. Přesná hodnota proudového odběru závisí na počtu rozsvícených LED diod a nastavené hladině jasu, který lze řídit programově z Arduina.
Pro úspěšné propojení LED matice a Arduino desky je nutné zapojit 5 propojovacích pinů. Propojíme VCC s 5 V Arduina, GND se zemí Arduina, DIN s pinem D10, CS s pinem D11 a CLK s pinem D12. Datové piny DIN, CS a CLK můžeme zapojit také na jiné volné piny, ale je nutné tuto změnu provést také v programu.
Pro správnou funkci uvedeného ukázkového kódu je nutné stáhnout a naimportovat knihovnu LedControl, návod jak na to je uveden zde. Ukázkový kód obsahuje na svém začátku připojení potřebné knihovny a dále nastavení čísel propojovacích pinů. Poté vytvoříme proměnnou udávající počet matic, kde je nutné doplnit, že počítání začíná od nuly. Následně provedeme inicializaci LED matice z knihovny a vytvoříme si proměnnou typu pole, která obsahuje pomocí logických jedniček vytvořené písmeno A. V podprogramu setup jako první probudíme matici z režimu spánku, poté nastavíme intenzitu svitu LED diod na střední úroveň a provedeme vypnutí všech LED diod na matici. V nekonečné smyčce loop je ukázán příklad všech možností práce s LED maticí. Jako první tedy vykreslíme pomocí for smyčky znak z proměnné, kdy se postupuje po řádcích. Následně vyčkáme po dobu jedné vteřiny a vypneme všechny LED diody. Druhý příklad obsahuje vykreslení některých LED diod ve čtvrtém řádku, třetí příklad vykreslení vybraných LED diod v šestém sloupci a na konci rozsvítíme krajní LED diodu pomocí příslušné funkce. Na konci programu je ještě uvedena ukázka všech úrovní intenzity svitu LED diod, kdy je postupně ukázán celý rozsah 0 až 15. Poté opět nastavíme střední svit a vypneme všechny rozsvícené LED diody, aby se nekonečná smyčka mohla opakovat.
// LED matice s MAX7219 // připojení potřebné knihovny #include "LedControl.h" // nastavení propojovacích pinů #define DIN 10 #define CS 11 #define CLK 12 // tato proměnná údává počet matic, // počítání začíná od nuly #define mojeMat 0 // inicializace LED matice z knihovny LedControl ledMat=LedControl(DIN, CLK, CS, mojeMat); // proměnná typu pole, 1 označují rozsvícené LED byte pismenoA[8]={ B00000000, B00011000, B00100100, B00100100, B00111100, B00100100, B00100100, B00000000}; void setup() { // probuzení matice pro zahájení komunikace ledMat.shutdown(mojeMat,false); // nastavení LED matice na střední svítivost (0-15) ledMat.setIntensity(mojeMat,7); // vypnutí všech LED diod na matici ledMat.clearDisplay(mojeMat); } void loop() { // vykreslení znaku z proměnné for(int i=0; i<8; i++) { ledMat.setRow(mojeMat,i,pismenoA[i]); } delay(1000); // vypnutí všech LED na matici ledMat.clearDisplay(mojeMat); // vykreslení LED diod v daném řádku, zde čtvrtý řádek // (řádky jsou číslovány od 0 do 7) ledMat.setRow(mojeMat,3,B10101010); delay(1000); // vykreslení LED diod v daném sloupci, zde šestý sloupec // (sloupce jsou číslovány od 0 do 7) ledMat.setColumn(mojeMat,5,B10111010); delay(1000); // vykreslení jedné zvolené LED diody, zde krajní dioda [8,8] ledMat.setLed(mojeMat,7,7,true); delay(1000); // ukázka změny intenzity svícení v celém rozsahu 0 až 15 for(int i=0; i<16; i++) { ledMat.setIntensity(mojeMat,i); delay(200); } // nastavení intenzity na střední svit ledMat.setIntensity(mojeMat,7); // vypnutí všech LED na matici ledMat.clearDisplay(mojeMat); }
Po nahrání ukázkového kódu do Arduino desky s připojenou LED maticí dostaneme například tento výsledek:
Arduino LED matice je zajímavý modul, který nám umožňuje obohatit Arduino o pole LED diod o velikosti 8x8. Velkou výhodou této matice je možnost řídit jednu a více LED matic propojených za sebou a to pouze pomocí tří datových pinů a dvou napájecích. Můžeme tedy tuto LED matici s obvodem MAX7219 využít v různých zapojeních jako zobrazovací prvek pro písmena či číslice, anebo například signalizovat měřící rozsahy pomocí počtu rozsvícených LED diod v jednotlivých sloupcích. Co se týká stavby matice ze stavebnice, stačí nám dobré pájedlo a trocha pájky. Součástek je malé množství a všechny jsou pěkné popsány přímo na desce plošných spojů, takže je jednoduché je zapájet na správné místo.
Seznam použitých komponent:
http://dratek.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html