Jak nainstalovat integraci Drátek eInk do Home Assistantu
Průvodce instalací integrace Drátek eInk do Home Assistantu pomocí obchodu HACS.
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
Průvodce instalací integrace Drátek eInk do Home Assistantu pomocí obchodu HACS.
Návod, jak jednoduše přidat a nastavit Drátek e-ink displej do Home Assistant