LCD displej z mobilního telefonu Nokia 5110 je jednoduše použitelný zobrazovací modul, který obsahuje černobílý displej s rozlišením 84x48 bodů a velikostí 1,6 palce. Mezi jeho výhody patří například přítomnost modrého podsvícení či nízká cena v porovnání s ostatními grafickými displeji. Malou nevýhodou je pak nutnost většího počtu propojovacích vodičů.
Pro propojení LCD displeje Nokie 5110 s Arduino deskou je zapotřebí propojit celkem 8 vodičů. Propojíme RST s pinem 8, CE s pinem 7, DC s pinem 6, DIN s pinem 5, CLK s pinem 4, VCC s pinem +3V3, LIGHT s pinem GND (nebo můžeme odpojit, jestli nechceme podsvícení) a nakonec GND se zemí Arduina. Všechny zmíněné datové piny pak samozřejmě můžeme vyměnit za jiné volné, jen je nutné tuto změnu provést také v programu.
Pro správné přeložení a nahrání uvedeného ukázkového kódu je nutné stáhnout a naimportovat knihovnu Nokia5110, návod jak na to je uveden zde. Ukázkový kód obsahuje na svém začátku připojení knihovny Nokia5110 a dále nastavení propojovacích pinů a inicializaci displeje z knihovny. V podprogramu setup je jako první uvedeno zahájení komunikace s displejem, dále jeho smazání a nastavení mezer mezi písmeny. U tohoto nastavení mezer můžeme vyzkoušet 0, 1 či 2 body, záleží, kolik budeme potřebovat vypsat písmen na řádek. Dalším příkazem se nastavuje kurzor, kdy první číslo v závorce odpovídá znaku na řádku a druhé samotnému řádku (číslování začíná od nuly, viz komentář v programu). Po nastavení kurzoru vytiskneme text uvedený v závorce a toto opakujeme pro každý řádek. V nekonečné smyčce loop pak vždy nastavíme kurzor na šestý řádek a následně převedeme pomocí uvedených příkazů číselnou proměnnou (zde čas získaný funkcí millis) na textový řetězec, který poté pomocí funkce LcdString vytiskneme na displej. Díky tomu, že při každém průběhu vypisujeme informaci na stejný řádek, nemusíme mazat celý displej, protože nová zpráva přepíše staré znaky. Na konci programu už je jen volitelná pauza, která simuluje případné další příkazy v programu.
// LCD displej Nokia 5110 // připojení knihovny Nokia5110 #include <Nokia5110.h> // nastavení propojovacích pinů #define RST 8 #define CE 7 #define DC 6 #define DIN 5 #define CLK 4 // inicializace LCD displeje z knihovny LCDnokia5110 lcd(RST, CE, DC, DIN, CLK); void setup(void) { // zahájení komunikace s displejem lcd.LcdInitialise(); // vymazání obsahu displeje lcd.LcdClear(); // nastavení velikosti mezery mezi písmeny, // lze nastavit na 0, 1 či 2 body lcd.CharSpace = 1; // nastavení kurzoru na 27 znak, 1 řádek, // tj. číslování od nuly lcd.GotoXY(26,0); // vytištění zprávy lcd.LcdString("Navody"); lcd.GotoXY(42,1); lcd.LcdString("."); lcd.GotoXY(6,2); lcd.LcdString("arduino-shop"); lcd.GotoXY(42,3); lcd.LcdString("."); lcd.GotoXY(39,4); lcd.LcdString("cz"); } void loop(void) { // nastavení kurzoru na 21 znak, 6 řádek lcd.GotoXY(20,5); // pro vytištění číselné proměnné, // v tomto případě času, je nutné // toto číslo převést následujícím způsobem: // uložení času v sekundách (millis/1000) // do proměnné cas String cas = String(millis()/1000, DEC); // vytvoření pomocné proměnné tisk pro // uložení v tisknutelném tvaru, // číslo 10 udává počet znaků zprávy char tisk[10]; // převod proměnné cas do proměnné tisk cas.toCharArray(tisk, 10); // vytištění informace na displej lcd.LcdString("Cas "); lcd.LcdString(tisk); lcd.LcdString(" s"); // volitelná pauza 500 ms delay(500); }
Po nahrání programu do Arduino desky s připojeným LCD displejem Nokia 5110 uvidíme například takovýto výpis:
LCD displej z Nokia 5110 připojený k Arduino desce lze použít v různých zapojeních a zařízeních, kde potřebujeme vypisovat různé informace pro uživatele bez nutnosti používat počítač. Výhodou tohoto displeje je také možnost podsvícení displeje či přítomnost krycího skla a pevného rámečku, které poskytují dobrou ochranu před poškozením. Displej s použitím pokročilejších knihoven umožňuje vypisovat také grafické obrázky, ale tato možnost mi nepřijde na takto malém displeji příliš praktická a proto ji neuvádím.
Poznámka redakce: na trhu se vyskytuje více verzí tohoto modulu, které mohou mít jiné rozložení pinů a také změnu v zapínání podsvícení displeje (3,3V nebo GND).
Seznam použitých komponent:
http://dratek.cz/arduino/878-arduino-lcd-display-nokia-5110-modre-podsviceni-1420491028.html
http://dratek.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html
http://dratek.cz/arduino/1227-7-ks-mini-nepajive-pole-25-kontaktu-1458405292.html