Samo ikonsko ime " Nokia 5110 " bi moralo kupiti spomine na močan mobilni telefon Nokia, ki je bil zelo priljubljen v devetdesetih. Model 5110 je bil opremljen z grafičnim zaslonom, ki je zadostoval, da je takrat deloval kot zaslon za mobilni telefon. Ta zaslon je lahko prikazoval vse, od alfanumeričnih znakov do majhnih grafik, kar je vse, kar je potrebno za mobilni telefon. Ko se je zemlja vrtela nove tehnike s prikazanimi sijočimi zasloni na dotik in ta zaslon ni več v uporabi. Upajmo pa, da jih je mogoče uporabiti v elektronskih aplikacijah, kjer je treba prikazati majhno grafiko in se izogniti zapravljanju denarja na velikih LCD zaslonih. V tej vadnici bomo torej izvedeli, kako vmesnik grafičnega LCD-ja Nokia 5110 povežete z Arduinom in ga sprožite.
Ti LCD imajo črno-bele slikovne pike velikosti 84 × 48. Morda so videti monotono, vendar jih je mogoče vseeno uporabiti za prikaz spodobne grafike za vaše projekte in jih je mogoče enostavno uporabiti z mikrokrmilniki, kot je Arduino. Začnimo torej….!
Potrebni materiali:
- Arduino Board (poljubna različica)
- Zaslon Nokia 5110
- Priključne žice
Modul grafičnega zaslona Nokia 5110:
Na trgu sta na voljo dve vrsti teh grafičnih LCD-prikazovalnikov. Ena s spajkalnimi blazinicami nad in pod zaslonom, druga pa s spajkalnimi blazinicami samo na dnu zaslona. Tisti, ki ga uporabljamo, spada v tip 2, kjer so blazinice samo pod zaslonom. Oba modula delujeta enako, zato so povezave enake za oba. Torej, ne glede na modul, lahko sledite vadnici.
Kot smo že omenili, ima Nokia 5110 Graphical LCD 84 pik v vodoravni in 48 pik v navpični legi. Skupna velikost zaslona je 1,72 'x 1,72'. Modul ima 6 vhodnih zatičev, s pomočjo katerih ga lahko prek komunikacije SPI povežemo s katerim koli mikrokrmilnikom. Vmesnik IC, ki komunicira med zaslonom in Arduinom, je integrirana vezja krmilnika zaslona Philips PCD8544, katerega podatkovni list najdete tukaj. Če pa uporabljate Arduino za komunikacijo s tem IC, nas ni treba skrbeti za podatkovni list, saj obstajajo knjižnice, ki so pripravljene za prenos in uporabo. Modul, ki ga uporabljamo tukaj, je prikazan spodaj.
Shema vezja:
Popoln diagram vezja za povezavo grafičnega LCD-ja Nokia5110 z Arduinom je spodaj.
Zaslonski modul ima 8 nožic, ki se uporabljajo za nastavitev SPI komunikacije z Arduino. Modul se napaja s 3,3V zatičem plošče Arduino. Upoštevajte, da ti moduli delujejo na logiki 3,3 V in zato ne napajajo 5 V na zatič Vcc zaslona. Pin zaslona sem neposredno priklopil na Arduino, čeprav LCD deluje na logiko 3,3 V, Arduino pa na logiko 5 V, ker sem šele takrat ugotovil, da LCD deluje pravilno. Po potrebi lahko z delilnikom napetosti pretvorite 5V v 3,3V, vendar zame deluje le brez logične pretvorbe. Povezave so dokaj preproste in naravnost naprej. Ko končate s povezavami, bo vaša nastavitev videti nekako takole, kot je prikazano spodaj.
Program in delovanje Arduino:
Sledite spodnjim korakom za programiranje vašega Arduina za zaslon Nokia 5110. Koraki predpostavljajo, da ste že namestili Arduino IDE in ste seznanjeni z njegovo uporabo.
1. korak: Odprite Arduino IDE v računalniku in izberite ustrezno ploščo v meniju orodij, potem ko Arduino povežete z računalnikom.
2. korak: Kliknite tukaj, če želite iz repozitorija GitHub prenesti knjižnico zaslona Nokia 5110 by Adafruit.
3. korak: Ko je datoteka Zip prenesena, izberite Skica -> Vključi knjižnico -> Dodaj knjižnico.ZIP in poiščite mesto, kamor je bil ZIP prenesen.
Opomba: Naložiti boste morali tudi jedro Adafruit GFX Graphics, ki vsebuje vse kroge, besedilo, pravokotnike itd. Lahko ga dobite na https://github.com/adafruit/Adafruit-GFX-Library in ga namestite na enak način.
4. korak: Zdaj odprite primer programa tako, da izberete Datoteka -> Primeri -> Adafruit PCD Nokia 5110 LCD Library -> pcdtest in kliknite gumb za nalaganje
5. korak: Ko je program naložen, pritisnite gumb za ponastavitev na Arduinu in videli bi primer programa, ki prikazuje vse animacije, kot je prikazano v videoposnetku na koncu te vadnice.
V primernem programu lahko preberete, kako razumeti različne vgrajene funkcije, ki se lahko uporabljajo za izvedbo različnih grafičnih oblik na LCD-prikazovalniku. Pa pojdimo še korak naprej in poskusimo na LCD zaslonu prikazati logotip CircuitDigest.
Zdaj odprite zahtevano sliko v programu Paint in ji spremenite velikost. Največja velikost slike, ki jo lahko uporabimo za zaslon, je 84 × 48.
Ko spremenite velikost slike, jo shranite kot bitno sliko (črno-belo) z uporabo možnosti shrani kot v Paint. Za prikaz slike kot bitne slike na našem LCD zaslonu potrebujemo programsko opremo, ki lahko pretvori bitno sliko v kodo. Programsko opremo lahko prenesete s klikom tukaj. Ko jo prenesete, datoteko razpakirajte in kliknite »BitmapEncoder«, da zaženete aplikacijo. Odprite bitno sliko, ki smo jo pravkar shranili s to programsko opremo, da dobimo niz kodiranih vrednosti. Te vrednosti lahko neposredno kopirate in prilepite v svojo Arduino matriko. Vrednost, ki jo prikazuje programska oprema za naš logotip, je prikazana spodaj
Kot lahko vidite, se matrika začne z vrednostjo 48, 48, to je velikost naše slike. Tega ne bi smeli dodati v našo matriko. Torej odstranite prvi dve vrednosti, preostale pa uporabite kot vrednost polja v programu. Matrika bo videti kot spodaj. Celoten program je glede na konec te strani za vaše reference.
static const unsigned char Logotip PROGMEM = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111111, B00000000, B00000000, B00000000, B0000 B11111111, B11000000, B00000000, B00000000, B00001110, B00111110, B00111111, B11110000, B00000000, B00000000, B00111110, B00111110, B10000000, B01111100, B00000000, B00000000, B01111100, B01111100, B1100000000, B1111000000, B11110000 B00001111, B00000000, B00000001, B11111000, B11111111, B00111111, B10000111, B10000000, B00000011, B11111000, B11111111, B11111111, B11000011, B11000000, B00000111, B11110001, B11111111, 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, B111111 B11 B111111, B111111, B111111, B111111 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, B111111, B111111, B111111, B1111 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, B00111111, B11110000, B111111, B111111 B10000001, B11111111, B11111100, B00000000, B00011111, B11111000, B00000111, B11111111, B11111000, B00000000, B00000111, B11111110, B00011111, B11111111, B11111000, B00000000, B00000001, B11 B11 B111111, B11, B11, B11, B11, B11 B11111111, B11110000, B00000111, B11111000, B00001111, B11111111, B11000000, B00000000, B00000011, B11111100, B00100111, B11111111, B00000000, B00000000, B00000011, B11111111, B00110111, B1111110000, B111111000, B11111100 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, B00001111, B111111, B11 B11111111, B00000000, B00000000, B00000000, B00000000, B00001111, B11110000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000};
Zdaj za prikaz te bitne slike moramo uporabiti naslednje vrstice kode. Kjer se prejšnji podatki na zaslonu izbrišejo in se zapiše nova bitna slika.
display.clearDisplay (); display.drawBitmap (20, 0, logotip, 48, 48, 1); display.display ();
Vrstica display.drawBitmap (20, 0, Logo, 48, 48, 1); prikaže položaj, velikost in barvo bitne slike. Sintaksa je lahko podana kot.
display.drawBitmap (X_Position, Y_Position, Ime polja, dolžina slike, širina slike);
Dolžino in širino slike lahko dobite iz prvih dveh elementov polja, kot smo že povedali. Ko zaženemo to kodo, se na našem LCD zaslonu prikaže bitna slika, kot je prikazano spodaj.
Prikažete lahko tudi preprosto besedilo, kot je prikazano spodaj:
Upam, da ste razumeli vadnico in dobili svoj Nokia 5110 LCD povezan z Arduino. S tem grafičnim zaslonom v rokavu lahko ustvarite številne projekte, ki zahtevajo manjše grafične podrobnosti. Celotno delo najdete v spodnjem videoposnetku. Če imate kakršne koli težave pri iskanju tega, lahko na forumu objavite svojo težavo ali spodnje odseke za komentarje.