Samotný ikonický název „ Nokia 5110 “ si měl koupit vzpomínky na robustní mobilní telefon Nokia, který byl v 90. letech velmi populární. Model 5110 byl dodáván s grafickým displejem, který byl v té době dostačující na to, aby fungoval jako obrazovka pro mobilní zařízení. Tato obrazovka dokázala zobrazit vše od alfanumerických znaků až po malé grafiky, které jsou pro mobilní telefon vše potřebné. Jak se Země otáčela, objevily se nové technologie s lesklými dotykovými obrazovkami a tento displej se již nepoužívá. Ale doufejme, že mohou být použity v elektronických aplikacích, kde musí být zobrazena malá grafika, a vyhnout se utrácení peněz za velké LCD obrazovky. V tomto tutoriálu se tedy naučíme, jak propojit grafický LCD displej Nokia 5110 s Arduinem a jak to funguje.
Tyto LCD mají černobílé pixely o rozměrech 84 × 48. Mohou vypadat monotónně, přesto je lze použít k zobrazení slušné grafiky pro vaše projekty a lze je snadno použít s mikrokontroléry, jako je Arduino. Pojďme tedy začít…!
Potřebné materiály:
- Deska Arduino (libovolná verze)
- Displej Nokia 5110
- Připojovací vodiče
Modul grafického displeje Nokia 5110:
Na trhu jsou k dispozici dva typy těchto grafických LCD. Jeden s pájecími podložkami nad i pod displejem a druhý s pájecími podložkami pouze na spodní straně displeje. Ten, který používáme, patří typu 2, kde jsou podložky pouze pod displejem. Oba moduly fungují stejně, a proto jsou připojení pro oba stejné. Výukový program tedy můžete sledovat bez ohledu na to, o jaký modul jde.
Jak již bylo řečeno, grafický LCD displej Nokia 5110 má 84 pixelů ve vodorovném směru a 48 pixelů ve svislém směru. Celková velikost displeje je 1,72 'x 1,72'. Modul má 6 vstupních pinů, pomocí kterých jej můžeme propojit s jakýmkoli mikrokontrolérem prostřednictvím komunikace SPI. Propojovacím integrovaným obvodem, který komunikuje mezi displejem a Arduinem, je integrovaný řadič displeje Philips PCD8544, jehož datový list naleznete zde. Pokud však ke komunikaci s tímto IC používáte Arduino, nemusíme si dělat starosti s datovým listem, protože existují knihovny, které jsou připraveny ke stažení a použití. Modul, který zde používáme, je uveden níže.
Kruhový diagram:
Kompletní schéma zapojení pro připojení grafického LCD displeje Nokia5110 k Arduinu je uvedeno níže.
Modul displeje má 8 pinů, které slouží k nastavení komunikace SPI s Arduinem. Modul je napájen kolíkem 3,3 V desky Arduino. Tyto moduly fungují na logice 3,3 V, a proto nedodávají 5 V na kolík Vcc displejů. Přímo jsem připojil Pin displeje k Arduinu, i když LCD pracuje na logice 3,3 V a Arduino na logice 5 V, protože teprve poté jsem zjistil, že LCD funguje správně. V případě potřeby můžete použít dělič napětí k převodu 5V na 3,3V, ale pro mě to funguje pouze bez logické konverze. Spojení jsou velmi jednoduchá a přímá. Jakmile dokončíte připojení, vaše nastavení bude vypadat nějak takto, jak je uvedeno níže.
Program a práce Arduino:
Podle následujících pokynů naprogramujte Arduino pro displej Nokia 5110. Kroky předpokládají, že jste již nainstalovali Arduino IDE a jste obeznámeni s jeho používáním.
Krok 1: Otevřete IDE Arduino v počítači a po připojení Arduina k počítači vyberte příslušnou desku v nabídce nástrojů.
Krok 2: Kliknutím sem stáhnete knihovnu displeje Nokia 5110 od knihovny Adafruit z úložiště GitHub.
Krok 3: Po stažení souboru ZIP vyberte Skica -> Zahrnout knihovnu -> Přidat knihovnu.ZIP a přejděte do umístění, kde byl stažen ZIP.
Poznámka: Budete si také muset stáhnout jádro grafiky Adafruit GFX, které provádí všechny kruhy, text, obdélníky atd. Můžete jej získat z https://github.com/adafruit/Adafruit-GFX-Library a nainstalovat jej stejným způsobem.
Krok 4: Nyní otevřete ukázkový program výběrem Soubor -> Příklady -> Knihovna LCD Adafruit PCD Nokia 5110 -> pcdtest a klikněte na tlačítko nahrát
Krok 5: Jakmile je program nahrán, stiskněte tlačítko reset na Arduinu a měli byste vidět ukázkový program zobrazující všechny animace, jak je ukázáno ve videu uvedeném na konci tohoto tutoriálu.
Můžete si přečíst ukázkový program, abyste pochopili různé vestavěné funkce, které lze použít k provedení různých grafických návrhů na LCD. Pojďme však o krok dále a zkusme zobrazit logo CircuitDigest na obrazovce LCD.
Nyní otevřete požadovaný obrázek v programu Malování a změňte jeho velikost. Maximální velikost obrázku, kterou můžeme pro naše zobrazení použít, je 84 × 48.
Po změně velikosti obrázku uložte obrázek jako bitmapu (černobíle) pomocí možnosti Uložit jako v programu Malování. K zobrazení obrazu jako bitmapy na naší LCD obrazovce budeme potřebovat software, který dokáže převést bitmapový obraz do kódu. Software si můžete stáhnout kliknutím sem. Po stažení soubor rozbalte a spusťte aplikaci kliknutím na „BitmapEncoder“ . Otevřete bitmapový obrázek, který jsme právě uložili pomocí tohoto softwaru, abyste získali pole kódovaných hodnot. Tyto hodnoty můžete přímo zkopírovat a vložit do svého pole Arduino. Hodnota zobrazená softwarem pro naše logo je uvedena níže
Jak vidíte, pole začíná hodnotou 48, 48, to je velikost našeho obrázku. Neměli bychom to přidávat do našeho pole. Odeberte tedy první dvě hodnoty a zbytek použijte jako hodnotu pole v programu. Pole bude vypadat níže. Kompletní program je uveden na konci této stránky pro váš odkaz.
static const unsigned char PROGMEM Logo = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111000, B00000000, B00000000, B00000000, B00000000, B000000, B000000, B000000, B000000, B000000, B00 B11111111, B11000000, B00000000, B00000000, B00001110, B00111110, B00111111, B11110000, B00000000, B00000000, B00111110, B00111110, B10000000, B01111100, B00000000, B00000000, B01111100, B01111100, B11000000, B00111110, B00000000, B00000000, B11111100, B01111110, B00000000, B00001111, B00000000, B00000001, B11111000, B11111111, B00111111, B10000111, B10000000, B00000011, B11111000, B11111111, B11111111, B11000011, B11000000, B00000111, B111100011, B11, B11, B11, B11, B11, B11, B11, B11, B11, B11, B11, B11, B11 B01100000, B00000000, B00000011, B11100000, B00001001, B11111100, B00000000, B00000000, B00000111,B11100000, B00011001, B11111110, B00000000, B00000000, B00000111, B11000000, B00000001, B11111111, B10000000, B00011111, B11111111, B11000111, B11100011, B11111111, B11111000, B00111111, B11111111, B111111, B111111, B111111, B111111, B111111, 11 B11111111, B11111111, B11111100, B00111111, B11111111, B00011111, B11111111, B11111111, B11111100, B00111111, B11111110, B00111111, B00111111, B11111111, B11111110, B01111111, B11111110, B00111110, B00000000, B01111111, B11111100, B01111111, B11111100, B01111100, B11000000, B00000000, B00000000, B01111111, B11111100, B01111110, B10000000, B00000000, B00000000, B00000000, B00000000, B11111110, B00111111, B11111111, B11111110, B00000000, B00000001, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111,B11000111, B11111111, B11111111, B11111110, B00111111, B11111111, B10000011, B11111110, B00000000, B00000000, B00111111, B11111111, B10110011, B11111000, B00000000, B00000000, B000000, B000000, B000000, B000000, B00 B10000001, B11111111, B11111100, B00000000, B00011111, B11111000, B00000111, B11111111, B11111000, B00000000, B00000111, B11111110, B00011111, B11111111, B11111000, B00000000, B00000001, B11111111, B01111111, B11111111, B11110000, B00001111, B11100000, B11111111, B11111111, B11111111, B11110000, B00000111, B11111000, B00001111, B11111111, B11000000, B00000000, B00000011, B11111100, B00100111, B11111111, B00000000, B00000000, B00000011, B11111111, B00110111, B11111100, B00000000, B00000000, B00000001, B11111111, B10000111, B11011000, B00111111, B10000000, B00000000, B11111111, B11001111, B10000000, B11111111, B00000000, B00000000, B01111111,B11111111, B10110001, B11111110, B00000000, B00000000, B00011111, B11111111, B10110111, B11111100, B00000000, B00000000, B00001111, B11111111, B10000111, B11110000, B00000000, B00000000, B00000011, B11111111, B11111111, B11000000, B00000000, B00000000, B00000000, B11111111, B11111111, B00000000, B00000000, B00000000, B00000000, B00001111, B11110000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000};
Nyní k zobrazení této bitmapy musíme použít následující řádky kódu. Kde jsou vymazána předchozí data na obrazovce a je zapsán nový bitmapový obraz.
display.clearDisplay (); display.drawBitmap (20, 0, Logo, 48, 48, 1); display.display ();
Řádek display.drawBitmap (20, 0, Logo, 48, 48, 1); zobrazí polohu, velikost a barvu bitmapového obrazu. Syntaxi lze zadat jako.
display.drawBitmap (X_Position, Y_Position, Name of Array, length of image, widthth of image);
Délka a šířka obrazu může být získána z prvních dvou prvků pole, jak již bylo řečeno dříve. Když je tento kód spuštěn, dostaneme bitmapu zobrazenou na naší LCD obrazovce, jak je uvedeno níže.
Můžete také zobrazit jednoduchý text, jak je znázorněno níže:
Doufám, že jste pochopili výukový program a nechali váš telefon Nokia 5110 LCD propojit s Arduino. S tímto grafickým displejem v rukávu můžete vytvořit mnoho projektů, které vyžadují drobné grafické detaily. Kompletní práci najdete ve videu níže. Pokud narazíte na problém při uvádění do provozu, můžete svůj problém odeslat do fóra nebo do sekce komentářů níže.