Řízení jasu displeje na modulech Waveshare "RP2040-LCD-0.96" a "Pico-LCD-0.96"

23.05.2022

Když jsem měl vytvořenu univerzální a snad funkční "lite" verzi třídy pro obsluhu displejů na výše uvedených modulech napadlo mne si vyzkoušet v jazyce Python dědění tříd. Vylepšovat je určitě pořád co ... Nicméně mne napadlo další verzi třídy, v rámci cvičení, rozšířit o původně vynechané řízení podsvícení displejů.
Zdá se, že se nakonec hodilo a může posloužit jako zajímavá ukázka práce s třídami v Pythonu. Navíc jsem zjistil, že bude třeba ošetřit individuálně. Ve schématech obou desek jsem si všiml jednoho drobného rozdílu, který jsem i fyzicky prověřil a otestoval. DEMO kódy na strankách výrobce totiž pro obě desky počítají s pinem 13 pro tuto funkci. NENÍ to ale pravda. Správně uvádí výrobce až ve schématech. Možná k této drobné chybce došlo díky kopírování kódu. Skutečnost je tato:

modul MCU "RP2040-LCD-0.96" má řízení jasu displeje zapojeno na pin 25
modul displeje a tlačítek "Pico-LCD-0.96" počítá s řízením jasu displeje na pinu 13 (jak je v ukázkovém kódu)

K dispozici proto dám druhý samostatný modul "LCD_WS096ext.py" ("ext" jako "extension" nebo-li rozšíření) s definicí třídy, kterou jsem nazval "LCD_WS096". Už bez přívlastku "lite" jak je vidět. Třída bude vycházet ze základu "LCD_WS096lite" a bude sloužit k rozšíření či modifikaci základní funkčnosti. Analogicky k tomu bude vytvořena i samostatná ukázková aplikace (DEMO) "LCD_WS096ext_demo.py" pro ladění a testování.

Provedené změny:
- konstruktor výše zmiňované třídy "LCD_WS096" doplněn o vstupní parametr "BoardType" typu string, kterým lze předat třídě označení desky
*bude ovlivňovat např. kód řízení podsvícení displeje a může být použit i kdykoliv později
*povolené hodnoty parametru:
"RP2040-LCD-0.96" pro desku MCU
"Pico-LCD-0.96" pro desku displeje a tlačítek
"unknown" bude interně nastaveno pokud nebude hodnota parametru korektní (nebude odpovídat žádné z požadovaných hodnot)
*parametr bude "case insentive"

- doplněna nová metoda:
Backlight
- vytvořeno nové DEMO "LCD_WS096ext_demo.py" využívající nový modul
- doplněny komentáře (prozatím česká mutace)

První verzi tohoto výše uvedeného snažení najdete buď v repozitory GitHub se základní třídou (druhý modul a ukázková aplikace) nebo na samostatné stránce pod tlačítkem níže.

Všechny výše uvedené odkazy byly v době uveřejnění příspěvku platné a funkční. Pokud zjistíte opak prosím o zpětnou vazbu. Předem děkuji.

© Všechna práva vyhrazena 2023, Kulíček R.
Vytvořeno službou Webnode Cookies
Vytvořte si webové stránky zdarma! Tento web je vytvořený pomocí Webnode. Vytvořte si vlastní stránky zdarma ještě dnes! Vytvořit stránky