Lekce 7 – modul displeje z NOKIE 5110

Zdravím všechny při naší další lekci, ve které si k Arduinu připojíme modul dipleje z dnes již legendárního mobilního telefonu NOKIE 5110. Jeho velikost je 1,6″ s rozlišením 84 na 48 bodů. Jedná se samozřejmně o monochromatický displej. K sehnání je již jako osazený modul (viz fotografie) se zabudovaným podsvětlením. Jeho cena se bude pohybovat okolo 100 Kč.

blogmedia-dscf2310-jpg.jpg

Zapojení vývodů na modulu:

  • 1. RST
  • 2. CE
  • 3. IN
  • 4. CLK
  • 5. +3,3V
  • 6. Podsvětlení – na mém modulu připojeno k zemi
  • 7. GND

blogmedia-edpm027n-glcd5110-jpg.jpg

Zapojení vývodů modulu se může na modulech od různých výrobcu lišit, přočtetě se dokumentaci od výrobce. Napájení displeje je realizováno z Arduina pomocí pinu s vyvedeným napětím 3,3V hned vedle 5V pinu (pozn.: Zkoušel jsem napájet displej i napětím 5V a nic se nestalo a zlepšil se dokonce kontrast. Vzhledem k omezeným informacím od výrobce, lze mít za to že napájení 5V je též možné). V mém případě je to:

 LCD (pin) Arduino (pin)
1 7
2 6
3 5
4 4
5 3
6  +3,3V (5V ??)
7 GND
8 GND

 

K ovládání jsem vytvořil knihovnu pro modul displeje. Z části jsem vytvořil již napsaný kód  a upravil jsem ho a nějaké nové funkce jsem přidal. Vám bude stačit stáhnout knihovnu zde (alternativní odkaz v rar) a zkopírovat jí jako v předchozí lekci do adresaře libraries.

Schéma zapojení zde nedávám. Přesto si můžete stáhnou obrázky zapojení zde a taky zde Důležité je jen zapojit správně datové vývody a napájení modulu. K Arduino je možné zase zapojit i více těchto displejů, záleží pouze na počtu volných pinů.

Program:

Ted něco málo (více) k programu (ke stažení zde). Dle komentářů je snad vše jasné. Důležité je vytvořit objekt displeje pomocí funkce LCDnokia5110 lcd(7,6,5,4,3)a správně napsat čísla pinů do kterých je displej v Arduinu zapojen. Poté stačí displej inicalizovat funkcí lcd.LcdInitialise();Dále již můžeme s diplejem pracovat. Po spuštení by se na dipleji měl objevit nápis Arduino a poté obrázek žárovky s textem Lekce 7 a šipkou. a následně ukázkový text s různými šiřkami mezer, abecedou a nějakými znaky. Všechny znaky jsou uloženy v knihovně jak se sami můžete podívat. Je tam uloženo prvních 127 znaků ASCII code. Česká diakritika chybí ale knihovnu si o daší znaky můžete rozšířit. Jak je vidno, každé písmeno se skláda z pěti 8 bitových vertikálních proužků. Poslední nejvišší bit je vždy 0. Pro názornou ukázku na obrázku, jak vytvořit data pro vykřičník:

blogmedia-part3-ascii-png.png

Data pro tento znak tedy budou:

 

TIP

Já jsem si ještě v knihovně modifikoval znak ‚ (apostrof) na ° (stupně) a to z důvodu potřeby zobrazovat údaje o teplotě pro moje jiné projekty. V knihovně , kterou jsem vám dak k dispozici ke stažení jsem tuto modifikaci ponechal, protože si myslím, že stupně využijete častěji než apostof. Podkud tedy bude chtít zobrazit znak °, odešlěte na displej znak ‚ (apostrof – ALT+39). Pro příklad  39,6’C — > 39,6°C.

 

Zde funkce z knihovny NOKIA5110:

lcd.ShowLogo(int miliseconds) – zobrazí na určený počet milisekund obrázek z nápisem Arduino (tuto funkci jsem přidal do knihovny NOKIA5110 jako ukázku. Data k obrázku jsou uložena již v samotné knihovně.

lcd.Clear() – smaže diplej

lcd.GotoXY(int index_bodu_zleva, int radek) – přesune kurzor na určené místo na displeji (příklad lcd.GotoXY(3,2); – přesune kurzor na 4. bod 3. řádku)

lcd.LcdString(char[]) – zobrazí na dipleje určený text (příklad lcd.LcdString(„Ahoj“); – zobrazí na pozici kurzoru text Ahoj)

int lcd.CharSpace – nastaví paramer mezer mezi jednotlivými znaky. Defaultně ja nastaveno ja 1. (nastavitelná hodnota je od 0 do 2). Rozdíl je vidět na ukázkovém programu. (příklad lcd.CharSpace = 2; – nastaveví mezeru mezi znaky na 2 body)

lcd.ShowImage(const unsigned char[], int delka_zobrazeni) – zobrazí obrázek na displeji pro požadovanou dobu v milisekundách. Jak v našem ukázovém programu můžete vidět, tak data obrázku jsou uložena např. v proměné logo_lekce. Tyto data vygeneruje dobrý malý prográmek s názvem LcdAssistant (ke stažení zde). Do tohoto programu nahrajete obrázek ve formátu bmp s rozměry přesně 84 x 48 v jednobitovém rozlišení (černá – bílá). Toto by měla zvládnout většina editorů obrázků. Prográmek vygeneruje již hotová data v souboru, ze kterého jej zkopírujete do vašeho programu. Dodržujete zadané rozměry a nastavení jako na obrázku níže.

blogmedia-screenshot001-jpg.jpg

Tak doufám, že vám prográmek funguje a že vše bylo pro vás pochopitelné. Kdyby byly nějaké problémy, nebo kdyby jste našli v textu chybu, nebojte se napsat buď na mail nebo do komentářů pod článek. Na závěr přidávám video jak by měl výsledek vypadat.

 

1 Komentář

  1. lukes

    Ahoj, prosím tě dá se pomocí tvé knihovny zobrazit i proměnné nebo pouze char řetězce? Díky

Napsat komentář

Translate »