O zařízení
Celé zařízení se jmenuje JY-MCU 8X Red Light Digital Tube + 8x Key + 8x Double Color LED modul, vyjde na nějakých 180,- korun českých a pořídíte je na čínském DealExtreme. Typů je více, ale jsou všechny na jedno brdo. Poštovné se neplatí, stejně jako clo, pokud jde tedy o takovouto prkotinu.JY-LKM1638 v celé své kráse |
Co to umí
- Rozsvítit libovolný dílek na libovolném segmentu
- Rozsvítit libovolnou LED v jedné ze dvou barev (červená, zelená)
- Nastavit společný jas pro displej a LED v sedmi úrovních
- Přečíst kód kombinace stisknutých spínačů
- Spojit do kaskády až šest těchto zobrazovačů
Připojení a zapojení
Mimo napájení (VCC a GND) je potřeba ještě připojit hodiny (CLK), data (DIO) a strobe (STB). Strobe může mít až šest linek (STB0-5), kterými řídíme další další zobrazovače v kaskádě.
Popis vývodů |
Zapojení v celé jeho kráse. Šváb pod MCU je FRAM a v zapojení nehraje žádnou roli, jen se mi ho nechtělo vytahovat. |
Driver
Takže, jak vidno, hodně muziky za málo peněz, připojeno máme, ale kde je nějaký software? Na netu se sice něco válí, ale jak použití, tak program, se mi moc nezdály. Po týdenních průběžných úpravách nějakého takového kódu jsem nakonec všechno zahodil a napsal to zgruntu znova.
Takže si můžete nyní stáhnout ARCHIV s příslušnými soubory (soubor s driverem, soubor s definicemi proměnných a jedno demo, ve kterém jsou výše uvedené knihovny použity.
Jak to funguje
Samotný zobrazovač potřebuje vždy poslat nějaký příkaz a parametry, podle kterých se nějak chová. To vše je popsáno v dokumentaci. Tohle celé je třeba zabalit do nějakého programového kódu, aby se to lépe používalo.Dále je tam pár méně významných rutinek, např. LMK1638_IntensityCycle, která cyklicky mění jas zobrazení.
Soubory jsou slušně komentovány a jejich použití není žádná věda.
Video funkce demonstračního programu
Použití
(občas mrkněte do vzorového programu)- Do 8 bytů počínaje adresou LMK1638_DISP_ADR uložíte bitové masky 8 znaků, které chcete zobrazit. Můžete využít definice čísel a znaků uložených v EEPROM (soubor LMK1638_symbols.basinc)
- Do 8 bytů počínaje adresou LMK1638_LED_ADR uložíte 8 bytů definující svit každé diody. Můžete využít předdefinované symboly LMK1638_LED_OFF, LMK1638_LED_RED, LMK1638_LED_GREEN
- Na adresu LMK1638_ONOFF_ADR vložte byte řídíce vypnutí a zapnutí displeje (čtení klávesnice funguje pořád). Můžete využít předdefinované symboly LMK1638_OFF a LMK1638_ON.
- Na adresu LMK1638_INTENSITY_ADR vložte hodnotu 0 až 7 definující intenzitu svitu.
- Zavolejte rutinu LMK1638_Show, která to pošle do zobrazovače.
- V provozu pak stačí jen měnit obsah LMK1638_DISP_ADR a případně LMK1638_LED_ADR.
Jak se definují znaky
Znak je do zobrazovače posílán jako jeden byte. Máme-li 8 segmentů (číslic) na celém zobrazovači, musíme poslat 8 bytů.Takže 1 byte = jeden znak. Každá ploška v segmentu odpovídá jednomu bitu v bajtu. Pořadí DP, G, F, ... A dle obrázku:
Chceme-li zobrazit velké E a ještě rozsvítit tečku na první pozici zleva, můžeme to zapsat takto:
POKE LMK1638_DISP_ADR, %11111001
Alternativně můžete také zapsat dekadicky (budeme sčítat čísla 128, 64, 32, 16, 8, 4, 2, 1 pro vysvícené plošky DP, G, F, ... A)
POKE LMK1638_DISP_ADR, 249
nebo hexadecimálně
POKE LMK1638_DISP_ADR, &F9
Kompletní program je pak:
poke LMK1638_ONOFF_ADR, LMK1638_ON 'display on poke LMK1638_INTENSITY_ADR, 7 'jas poke LMK1638_DISP_ADR, %11111001 gosub LMK1638_Show
Můžeme také využít vlastnosti příkazu POKE zapsat více bytů najednou a zobrazit třeba pomlčky přes celý display:
poke LMK1638_DISP_ADR, 64,64,64,64, 64,64,64,64 'samé pomlčky
Žádné komentáře:
Okomentovat