- Potrebné materiály:
- Modul grafického displeja Nokia 5110:
- Schéma zapojenia:
- Program Arduino a práca:
Samotný ikonický názov „ Nokia 5110 “ si mal kúpiť spomienky na robustný mobilný telefón Nokia, ktorý bol v 90. rokoch veľmi populárny. Model 5110 bol dodávaný s grafickým displejom, ktorý bol dostatočný na to, aby fungoval ako obrazovka mobilného telefónu. Táto obrazovka dokázala zobraziť všetko od alfanumerických znakov po malé grafiky, čo všetko je potrebné pre mobilný telefón. Ako sa Zem vyvíjala, pribudli nové technológie s lesklými dotykovými obrazovkami a tento displej sa už nepoužíva. Dúfajme však, že sa dajú použiť v aplikáciách elektroniky, kde je potrebné zobraziť malú grafiku a vyhnúť sa tak utrácaniu peňazí za veľké LCD obrazovky. V tomto výučbe sa teda naučíme, ako prepojiť grafický LCD displej Nokia 5110 s Arduinom a ako s ním pracovať.
Tieto LCD majú čiernobiele pixely s rozmermi 84 × 48. Mohli by vyzerať monotónne, ale stále sa dajú použiť na zobrazenie slušnej grafiky pre vaše projekty a dajú sa ľahko použiť s mikrokontrolérmi, ako je Arduino. Tak poďme na to….!
Potrebné materiály:
- Doska Arduino (ľubovoľná verzia)
- Displej Nokia 5110
- Pripojovacie vodiče
Modul grafického displeja Nokia 5110:
Na trhu sú k dispozícii dva typy týchto grafických displejov LCD. Jeden s spájkovacími podložkami nad aj pod displejom a druhý s spájkovacími podložkami iba na spodnej časti displeja. Ten, ktorý používame, patrí typu 2, kde sú podložky iba pod displejom. Oba moduly fungujú rovnako, a preto sú obidve pripojenia rovnaké. Bez ohľadu na to, o aký modul sa jedná, môžete postupovať podľa návodu.
Ako už bolo povedané, grafický displej LCD Nokia 5110 má 84 pixelov na šírku a 48 pixelov na výšku. Celková veľkosť displeja je 1,72 'x 1,72'. Modul má 6 vstupných pinov, pomocou ktorých ho môžeme prepojiť s akýmkoľvek mikrokontrolérom prostredníctvom SPI komunikácie. Prepojovacím integrovaným obvodom, ktorý komunikuje medzi displejom a Arduinom, je integrovaný obvod radiča displeja Philips PCD8544, ktorého technický list nájdete tu. Ak však na komunikáciu s týmto IC používate Arduino, nemusíme si robiť starosti s údajovým listom, pretože existujú knižnice, ktoré sú pripravené na stiahnutie a použitie. Modul, ktorý tu používame, je uvedený nižšie.
Schéma zapojenia:
Kompletná schéma zapojenia pre pripojenie grafického displeja Nokia5110 k Arduinu je uvedená nižšie.
Modul displeja má 8 pinov, ktoré sa používajú na nastavenie SPI komunikácie s Arduinom. Modul je napájaný s pinom 3,3 V na doske Arduino. Upozorňujeme, že tieto moduly fungujú na logike 3,3 V, a preto nedodávajú 5 V na kolík Vcc displejov. Ja som priamo zapojil Pin displeja do Arduina, aj keď LCD pracuje na 3,3 V logike a Arduino na 5V logike, pretože až potom som zistil, že LCD funguje správne. Môžete použiť delič napätia na prevod 5V na 3,3V, ak je to potrebné, ale pre mňa to funguje iba bez logickej konverzie. Pripojenia sú celkom jednoduché a priame. Po dokončení pripojení bude vaše nastavenie vyzerať asi takto, zobrazené nižšie.
Program Arduino a práca:
Podľa nasledujúcich pokynov naprogramujete svoje Arduino pre displej Nokia 5110. Kroky predpokladajú, že ste už nainštalovali Arduino IDE a ste oboznámení s jeho používaním.
Krok 1: Otvorte IDE Arduino na počítači a po pripojení Arduina k počítaču vyberte príslušnú dosku v ponuke nástrojov.
Krok 2: Kliknite sem a stiahnite si knižnicu displeja Nokia 5110 od knižnice Adafruit z úložiska GitHub.
Krok 3: Po stiahnutí súboru ZIP vyberte Skica -> Zahrnúť knižnicu -> Pridať knižnicu.ZIP a prejdite na miesto, kde bol stiahnutý ZIP.
Poznámka: Budete si musieť stiahnuť aj grafické jadro Adafruit GFX, ktoré pracuje so všetkými kruhmi, textom, obdĺžnikmi atď. Môžete ho získať z https://github.com/adafruit/Adafruit-GFX-Library a nainštalovať ho rovnakým spôsobom.
Krok 4: Teraz otvorte ukážkový program výberom Súbor -> Príklady -> Adafruit PCD Nokia 5110 LCD Library -> pcdtest a kliknite na tlačidlo upload
Krok 5: Po nahraní programu stlačte tlačidlo reset na Arduine a mal by sa zobraziť ukážkový program, ktorý zobrazuje všetky animácie tak, ako je to znázornené vo videu na konci tohto tutoriálu.
Môžete si prečítať ukážkový program, aby ste pochopili rôzne zabudované funkcie, ktoré by sa mohli použiť na vykonávanie rôznych grafických návrhov na displeji LCD. Poďme však ešte o krok ďalej a skúsme zobraziť logo CircuitDigest na obrazovke LCD.
Teraz otvorte požadovaný obrázok v programe Skicár a zmeňte jeho veľkosť. Maximálna veľkosť obrázka, ktorú môžeme pre naše zobrazenie použiť, je 84 × 48.
Po zmene veľkosti obrázka ho uložte ako bitovú mapu (čiernobielo) pomocou možnosti uloženia ako v programe Skicár. Na zobrazenie obrazu ako bitmapy na našej LCD obrazovke budeme potrebovať softvér, ktorý dokáže prevádzať bitmapový obraz do kódu. Softvér si môžete stiahnuť kliknutím tu. Po stiahnutí rozbaľte súbor a kliknutím na „BitmapEncoder“ spustite aplikáciu. Otvorte bitmapový obrázok, ktorý sme práve uložili pomocou tohto softvéru, aby ste získali pole kódovaných hodnôt. Tieto hodnoty môžete priamo skopírovať a vložiť do svojho poľa Arduino. Hodnota zobrazená softvérom pre naše logo je uvedená nižšie
Ako vidíte, pole začína hodnotou 48, 48, toto je veľkosť nášho obrázka. Toto by sme nemali pridávať do nášho poľa. Odstráňte teda prvé dve hodnoty a zvyšok použite ako hodnotu poľa v programe. Pole bude vyzerať nižšie. Kompletný program je uvedený na konci tejto stránky pre 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, 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, B11000011, B11000000, B00000111, B11110001,1111, B111111, 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, B001111,111111,111111, 111111, 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, B00000000, B00000000 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};
Teraz na zobrazenie tejto bitmapy musíme použiť nasledujúce riadky kódu. Miesto, kde sa vymažú predchádzajúce údaje na obrazovke a zapíše sa nový bitmapový obrázok.
display.clearDisplay (); display.drawBitmap (20, 0, Logo, 48, 48, 1); display.display ();
Riadok display.drawBitmap (20, 0, Logo, 48, 48, 1); zobraziť polohu, veľkosť a farbu bitmapového obrazu. Syntax môže byť zadaná ako.
display.drawBitmap (X_Position, Y_Position, Name of Array, dĺžka obrázka, šírka obrázka);
Dĺžka a šírka obrázka sa dá zistiť z prvých dvoch prvkov poľa, ako už bolo povedané skôr. Keď je tento kód spustený, dostaneme bitmapu zobrazenú na našej LCD obrazovke, ako je uvedené nižšie.
Môžete tiež zobraziť jednoduchý text, ako je uvedené nižšie:
Dúfam, že ste pochopili návod a vaše Nokia 5110 LCD bolo prepojené s Arduino. S týmto grafickým displejom v rukáve môžete vytvoriť veľa projektov, ktoré si vyžadujú menšie grafické detaily. Kompletné fungovanie nájdete vo videu uvedenom nižšie. Ak narazíte na problém pri zavádzaní tohto riešenia, môžete svoj problém odeslať do fóra alebo do sekcií komentárov uvedených nižšie.