[Python raspberry pi] české znaky LCD

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Michaal.K 8. 7. 2021 11:21

Ahoj,

potřebuji poradit s definováním českých znaků pro LCD displej 16x2, který je připojen k raspberry pi zero.
Tvořím internetové rádio a v názvu interpreta a názvu skladby se zobrazují místo znaků s diakritikou čínské znaky (LCD byl koupen v číně ;-) ). Do lcd displeje lze uložit jen 8 mnou definovaných znaků, což je pro českou abecedu málo.
Zkoušel jsem znaky měnit za běhu programu ale moc se mi to nedaří. Navíc jsem zjistil, že místo jedno znaku s diakritikou se mi zobrazují na displeji dva čínské (viz. fotka).
https://ibb.co/gjsXhWx

Neřešil jsem to už někdo? Díky
Michaal.K
Junior

Odeslat příspěvekod soban 8. 7. 2021 17:49

Prostě s tím nehneš - jenom osm znaků můžeš nadefinovat a pokud na displeji zobrazíš nějaký znak a pak jeho definici změníš tak i na LCD se to změni.

Tyto displeje se vyrábí s 3 rozdílnými rom pro znaky a i v číně se dá koupit s diakritikou a pak těch 8 znaků stačí na definici našich znaků protože třeba dlouhé á už je v rom tak ho nemusíš definovat....

Prostě před zobrazením textu si musíš zjistit jaké znaky potřebuješ zobrazit a pak provést reset LCD a nadefinovat těch 8 znaku a vypsat text...

Stylem nadefinovat 8 znaků vypsat je a pak nadefinovat dalších 8 znaků a vypsat je a bude vypsaných 16 různých znaků tak takto to nejde jak změníš ty nedefinované znaky tak se změní i těch prvních 8 už vypsaných - zobrazených.

EDIT:

Zde je datashet kde je vidět jaké znaky jsou v rom, pokud máš rom A00 (rom pro čínu) tak máš smůlu a můžeš psát texty bez diakritiky protože do 8 znaků všechnu diakritiku nenacpeš.
Pokud máš rom A02 (rom pro evropu) tak tam už nějaké znaky s diakritikou jsou a do těch 8 znaků dodefinuješ které tam nejsou.

http://www.sparkfun.com/datasheets/LCD/HD44780.pdf
/----------------------------------------\
| Petr Šobáň |
| Olomouc |
\----------------------------------------/
soban
Pokročilý

Odeslat příspěvekod Michaal.K 13. 7. 2021 10:37

Ahoj,
díky za info. Nakonec jsem to vyřešil tak, že znaky s diakritikou najdu a nahradím normálními znaky. Sice nemám na displeji české znaky, ale aspoň tam nejsou ty čínské :-)
Původně jsem myslel, že bych v textu zjistil jaké tam jsou znaky s diakritikou a ty bych pak uložil do paměti displeje a následně zobrazil na LCD. Vycházel jsem ztoho, že v názvu interpreta a skladby by se nevyskytovalo víc jak 8 různých znaků s diakritikou. Bohužel jsem narazil na problém s tím, že zobrazovaný text na displeji kvůli jeho délce rotuji... A mnou definované znaky, které mám uloženy v paměti displeje lze rovnou zobrazovat na displeji na danou pozici.
A rotaci textu provádím v programu tak, že posouvám proměnnou string s daným textem a následně zobrazuji na displeji.
Musím se nad tím ještě zamyslet ;-) Ale řešení by asi bylo, že bych si ukládal pozice nalezených znaků s diakritikou a ve funkci rotace bych na uložené pozici + 1 zobrazil uložený znak z paměti (lcd.lcd_write_char(0)).
Díky...
Michaal.K
Junior

Odeslat příspěvekod soban 13. 7. 2021 11:50

8 znaků je fakt málo pokud máš čínskou rom, kdyby jsi měl tu evropskou tak tam už jsou nějaké znaky a potřebuješ pouze třeba ň případně Š atd....

Jinak pokud ten text má pouze max 8 znaků s diakritikou tak to jde udělat jak píšeš, nadefinovat těch 8 znaků a vypsat.
/----------------------------------------\
| Petr Šobáň |
| Olomouc |
\----------------------------------------/
soban
Pokročilý


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků