Raspberry Pi


51) Levný displej Nokia5110 - 84x48 bodů

Další z displejů, který se mi podařilo zprovoznit je grafický displej Nokia s rozlišením 84x48 bodů.

Tyto displeje je možné koupit například přes e-bay za 50 až 100Kč.

 

 

Podle nadefinovaného fontu je možné tento displej použít pro zobrazování textů v matici 14 sloupců x 6 řádek.  Ve většině případů se tedy tento displej může použít jako náhrada textových displejů (16x2 znaky), které jsou zhruba stejně drahé, nebo dokonce náhrada textových displejů 16x4 znaky (ty jsou už výrazně dražší).

Nevýhoda proti textovým displejům je pomalejší ovládání a o 2 znaky kratší řádky. Jednotlivé znaky jsou také menší.
Výhoda je plný grafický režim, takže je možné ovládat každý z 84x48 bodů.


Displej je možné připojit přímo na GPIO konektor v RasPi, protože pracuje s napájením 3,3V.

K ovládání jsou potřeba tyto signály:

 

Sériová Data  (Din)
Hodiny  (CLK)
Přepínání "Data" / "Příkazy" (D/C)
Reset (RST)

V případě, že budete používat více displejů zároveň, je třeba přepínat i vývod CE (Chip Enable). Všechny ostatní vývody displejů jsou v tom případě zapojené paralelně (schéma pro 2 displeje).
Pokud bude použitý jen jeden displej, stačí vývod CE připojit na GND.

Schéma připojení jednoho displeje:


(GPIO na RasPi je samozřejmě možné zvolit podle potřeby. V programu se pak ale musí nastavit správná čísla.)

 

Pozor, na některých webových stránkách jsem našel informaci, že vývod č.7 (podsvět displeje) se zapojuje přes odpor na +3,3V. 
Displeje, které jsem měl k dispozici já, potřebovaly k rozsvícení podsvětu zapojit vývod č.7 na GND.
Takže když vám podsvět nebude svítit, tak si raději najděte nějaký návod na připojení k vašemu konkrétnímu displeji.


Ovládání displeje je popsáno v katalogovém listu: Nokia5110.pdf

Pro jednoduché vysvětlení snad postačí tento základní popis:

1) Přepnout displej na příjem příkazů (vývod D/C do "0").
2) Po sériové lince poslat osmibitový příkaz pro požadovanou akci (například nastavení pozice "X").
3) Po sériové lince poslat další osmibitový příkaz  (například nastavení pozice "Y").
4) Přepnout displej na příjem dat (vývod D/C do "1").
5) Odeslání 8 bitů dat po sériové lince, které se přepíšou na 8 bodů na displeji.

Sériové odesílání bajtu probíhá tak, že se na datovém vstupu postupně nastavují jednotlivé bity přenášeného bajtu (od nejvyššího k nejnižšímu) a po každém tomto bitu se "tikne" hodinami z "0" do "1" a pak zpátky na "0".

Ještě před započetím kreslení na displej je třeba provést inicializaci displeje:
 - nastavení směru automatického přičítání adres vertikálně / horizontálně
 - nastavení kontrastu

Když se do displeje posílá více dat současně, není potřeba před každým bajtem nastavovat pozici. Pozice se totiž automaticky zvětšuje po každém zápisu. 


Software:

Ukázkový program se skládá z hlavního Pythoního ovladače:  nokia.py
ke kterému je třeba dodat soubor s definicí znaků 5x8 bodů (používal jsem ho už v minulých displejích) : font.txt
a pro ukázku ještě bitmapový černobílý obrázek 84x48 bodů : dis8448.bmp

Ukázkové video:

  

 


úvodní strana webu AstroMiK.org

poslední úprava stránky 18.5.2014