Kazalo:

Meni Arduino na LCD zaslonu Nokia 5110 z rotacijskim kodirnikom: 6 korakov (s slikami)
Meni Arduino na LCD zaslonu Nokia 5110 z rotacijskim kodirnikom: 6 korakov (s slikami)

Video: Meni Arduino na LCD zaslonu Nokia 5110 z rotacijskim kodirnikom: 6 korakov (s slikami)

Video: Meni Arduino na LCD zaslonu Nokia 5110 z rotacijskim kodirnikom: 6 korakov (s slikami)
Video: LCD экран Nokia 5110 для Arduino 2024, Julij
Anonim
Image
Image
Meni Arduino na LCD zaslonu Nokia 5110 z rotacijskim kodirnikom
Meni Arduino na LCD zaslonu Nokia 5110 z rotacijskim kodirnikom

Dragi prijatelji, dobrodošli v drugi vadnici! V tem videoposnetku se bomo naučili, kako zgraditi lasten meni za priljubljeni LCD zaslon Nokia 5110, da bodo naši projekti uporabniku prijaznejši in zmogljivejši. Začnimo!

To je projekt, ki ga bomo gradili. Na zaslonu se prikaže preprost meni in s pomočjo vrtljivega dajalnika se lahko pomikam navzgor ali navzdol in s pritiskom na gumb vrtljivega dajalnika izberem element menija. Ko pritisnete srednji gumb vrtljivega dajalnika, se prikaže drug zaslon in vrednost spremenljivke lahko spremenimo. Če še enkrat pritisnemo gumb vrtljivega dajalnika, se vrnemo na zaslon glavnega menija. Meni vsebuje 6 elementov, po meniju pa se lahko pomikamo navzdol ali navzgor in postavke na zaslonu se bodo ustrezno spremenile. Kako natančno deluje ta meni, si oglejte v priloženem videu. Seveda ga lahko po želji spremenite in sestavite svoje bolj zapletene menije.

Zdaj pa poglejmo, kako zgraditi ta projekt.

Korak: Pridobite vse dele

Pridobite vse dele
Pridobite vse dele

Za izdelavo tega projekta so potrebni naslednji deli:

  • Arduino Uno ▶
  • LCD zaslon Nokia 5110 ▶
  • Rotacijski dajalnik ▶
  • Majhna plošča ▶
  • Nekatere žice ▶
  • Power Bank ▶

Stroški projekta so zelo nizki, znašajo manj kot 10 USD. Povezave do vseh delov, ki jih uporabljam, najdete v spodnjem opisu videoposnetka.

Korak: LCD zaslon Nokia 5110

Image
Image
Gradnja projekta
Gradnja projekta

Nokia 5110 je moj najljubši zaslon za moje Arduino projekte.

Nokia 5110 je osnovni grafični LCD zaslon, ki je bil prvotno namenjen kot zaslon mobilnega telefona. Uporablja krmilnik PCD8544, ki je krmilnik/gonilnik CMOS LCD z nizko porabo energije. Zaradi tega ima ta zaslon impresivno porabo energije. Ko je vklopljen, uporablja le 0,4 mA, vendar je osvetlitev ozadja onemogočena. V načinu mirovanja porabi manj kot 0,06 mA! To je eden od razlogov, zaradi katerih je ta zaslon moj najljubši. PCD8544 se povezuje z mikrokrmilniki prek vmesnika serijskega vodila. Zaradi tega je zaslon zelo enostaven za uporabo z Arduinom. Povezati morate le 8 žic.

Pripravil sem podroben vodič o uporabi LCD zaslona Nokia 5110 z Arduinom. Ta videoposnetek sem priložil temu priročniku, ki bo morda vseboval koristne informacije o zaslonu, zato vas vabim, da si ga pozorno ogledate. Cena zaslona je okoli 4 USD.

Dobite ga lahko tukaj: ▶

Korak: Rotacijski dajalnik

Image
Image

Rotacijski dajalnik, imenovan tudi dajalnik gredi, je elektromehanska naprava, ki pretvori kotni položaj ali gibanje gredi ali osi v analogno ali digitalno kodo. Rotacijski dajalniki se uporabljajo v številnih aplikacijah, ki zahtevajo natančno neomejeno vrtenje gredi, vključno z industrijskim krmiljenjem, robotiko, fotografskimi objektivi za posebne namene, računalniškimi vhodnimi napravami (kot so optomehanske miši in sledilne krogle), nadzorovanimi merilniki napetosti in vrtljivimi radarskimi platformami.

Rotacijski dajalnik, ki ga bomo uporabili v tem projektu, je zelo poceni kodirnik. Vgrajen ima tudi gumb, da lahko deluje, moramo povezati le 5 žic. Pripravil sem podroben vodič o uporabi rotacijskega dajalnika. Ta videoposnetek najdete tukaj.

Stroški tega rotacijskega dajalnika so zelo nizki. Stane okoli 1,5 USD.

Dobite ga tukaj ▶

4. korak: Izdelava projekta

Image
Image
Gradnja projekta
Gradnja projekta
Gradnja projekta
Gradnja projekta

Zdaj povežemo vse dele skupaj. Pred izdelavo tega projekta, če v preteklosti še niste uporabljali rotacijskega kodirnika, vas vabim, da si ogledate vadnico, ki sem jo pripravil o rotacijskih kodirnikih. Pomagal vam bo razumeti, kako delujejo rotacijski dajalniki, in z njimi boste pridobili nekaj izkušenj. Ta video je priložen tukaj.

Zaslon sem postavil na majhno ploščo, kot je ta. Najprej povežemo zaslon. Prvi pin na zaslonu, ki je ponastavljen, gre na digitalni pin 3 Arduino Uno, drugi pin na digitalni pin 4, tretji pin na digitalni pin 5, četrti pin na digitalni pin 11 in peti pin na digitalni pin 13. Naslednji pin je Vcc. Vcc povežemo s pozitivno tirnico plošče, pozitivna tirnica pa s 3.3 V izhodom Arduina. Naslednji pin je Osvetlitev zaslona. Ker ga želimo upravljati prek programske opreme, ga povežemo z digitalnim zatičem 7. Zadnji zatič je GND. GND povežemo z negativno tirnico plošče, negativno tirnico plošče pa z Arduino GND.

Zdaj moramo le še priključiti rotacijski dajalnik. Prvi zatič je GND in ga povežemo z negativno tirnico na plošči. Naslednji zatič je Vcc in ga povežemo s pozitivno tirnico plošče. Naslednji pin je SW in ga priključimo na analogni pin 2. Naslednji pin se imenuje DT in ga povežemo na analogni pin 1. Nazadnje je pin CLK priključen na analogni pin 0. Shematski diagram tega projekta najdete v opis spodnjega videa.

Zdaj smo pripravljeni projekt poglobiti. Kot lahko vidite, projekt dobro deluje, meni pa deluje po pričakovanjih! Odlično, poglejmo zdaj programsko opremo projekta.

5. korak: Koda projekta

Kodeks projekta
Kodeks projekta

V tem projektu uporabljamo 4 knjižnice. Za prikaz uporabljamo dve knjižnici, za vrtljivi dajalnik pa dve.

  1. Adafruit GFX:
  2. Nokia 5110:
  3. Knjižnica kodirnika:
  4. Knjižnica TimerOne:

Najprej si bomo ogledali funkcijo drawMenu. Ta funkcija je odgovorna za risanje menija na zaslonu. Ta funkcija se kliče vsakih nekaj milisekund, zato je v primeru spremembe menija ta funkcija odgovorna za posodobitev menija na zaslonu.

int menuitem = 1; int frame = 1; int stran = 1; int lastMenuItem = 1;

Obstajajo tudi 3 zelo pomembne globalne spremenljivke, spremenljiva stran, spremenljiva postavka menija in spremenljiv okvir. Spremenljiva stran si zapomni, kateri zaslon uporabniškega vmesnika je prikazan na zaslonu. Torej, če je spremenljivka strani 1, smo na glavnem zaslonu uporabniškega vmesnika, in če je spremenljivka 2, smo na sekundarnem zaslonu uporabniškega vmesnika, kjer nastavimo vrednost spremenljivke. Element menija si zapomni izbrano točko menija. Torej, če je njegova vrednost 1, je izbrana prva postavka menija, zato mora funkcija drawMenu ta menijski element narisati kot črno z belimi črkami. Če je element menija 2, je izbran drugi element menija in tako naprej. Spremenljivka okvirja si zapomni, kateri del menija je prikazan na zaslonu. Ker meni, ki smo ga ustvarili, vsebuje 6 elementov in jih lahko prikažemo le 3 hkrati, moramo vedeti, kateri elementi so prikazani na zaslonu. Spremenljivka okvirja nam pove točno to. Če ima spremenljivka okvirja vrednost 1, prikažemo prve tri točke menija, če je 2, prikažemo postavke 2, 3, 4 itd.

Poskušal sem narediti kodo čim lažje spremeniti, zato sem ustvaril nekaj globalnih spremenljivk, ki vsebujejo imena elementov menija. Na ta način lahko preprosto ustvarite lastne menije, ne da bi iskali v kodi.

Niz menuItem1 = "Kontrast"; Niz menuItem2 = "Glasnost"; Niz menuItem3 = "Jezik"; Niz menuItem4 = "Težave"; Niz menuItem5 = "Luč: ON"; Niz menuItem6 = "Ponastavi";

logična osvetlitev ozadja = res;

int kontrast = 60; int volumen = 50;

Jezikovni niz [3] = {"EN", "ES", "EL"};

int selectedLanguage = 0;

Težave z nizom [2] = {"EASY", "HARD"};

int selectedDifficulty = 0;

Najprej inicializiramo vse globalne spremenljivke, ki so potrebne v kodi. Nato inicializiramo zaslon. Pri funkciji zanke najprej pokličemo funkcijo drawMenu, da narišemo meni na zaslonu. Nato preberemo vrednost iz rotacijskega dajalnika in preverimo, ali je gumb pritisnjen. Na primer, če smo na glavnem zaslonu uporabniškega vmesnika in je izbrana prva postavka menija, če se je vrednost iz vrtljivega dajalnika povečala, se spremenljivka menija poveča in v naslednji zanki funkcija drawMenu izriše drugo postavko menija kot izbrano. Če zdaj pritisnemo gumb vrtljivega dajalnika, se pomaknemo na drugo stran, kjer nastavimo vrednost spremenljivke. Z uporabo vrtljivega dajalnika lahko vrednost spremenljivke povečamo ali zmanjšamo. Če pritisnemo gumb, se vrnemo na stran glavnega menija in spremenljivka strani se zmanjša.

To je osnovna ideja tega menija. Za vse elemente menija in strani sledimo enakemu postopku. Koda je zapletena, dolga je več kot 400 vrstic. Zdi se zapleteno, če pa poskusite sami, ga boste lažje razumeli in ga boste lahko spremenili, razširili in uporabili v svojih projektih. Kot vedno lahko najdete priloženo kodo.

6. korak: Testiranje projekta

Testiranje projekta
Testiranje projekta

Če naložimo kodo, lahko vidimo, da projekt deluje po pričakovanjih. Po gredu se lahko pomikate navzgor in navzdol in s pritiskom na gumb vrtljivega dajalnika lahko izberete katero koli točko menija. Kako kul je to!

Zdaj, ko vemo, kako sestaviti menije za LCD zaslone Nokia 5110, lahko svojim projektom dodamo več funkcij in jih naredimo bolj prijazne do uporabnika. Ta preprost meni, ki smo ga zgradili danes, pa je mogoče izboljšati. Namesto da bi ves čas preverjali stanje gumbov, bi lahko uporabili prekinitve. Na ta način lahko zmanjšamo porabo energije projekta in naredimo kodo čistejšo. Kmalu bom pripravil video o prekinitvah, zato spremljajte nas. Rad bi slišal vaše mnenje o tem menijskem projektu. Se vam zdi koristno in ali nameravate uporabiti meni v katerem koli svojem projektu. Spodaj objavite svoje misli in ideje, hvala!

Priporočena: