Cuprins:

Meniul Arduino pe un Nokia 5110 Lcd folosind un codificator rotativ: 6 pași (cu imagini)
Meniul Arduino pe un Nokia 5110 Lcd folosind un codificator rotativ: 6 pași (cu imagini)

Video: Meniul Arduino pe un Nokia 5110 Lcd folosind un codificator rotativ: 6 pași (cu imagini)

Video: Meniul Arduino pe un Nokia 5110 Lcd folosind un codificator rotativ: 6 pași (cu imagini)
Video: LCD экран Nokia 5110 для Arduino 2024, Decembrie
Anonim
Image
Image
Meniu Arduino pe un Nokia 5110 Lcd folosind un codificator rotativ
Meniu Arduino pe un Nokia 5110 Lcd folosind un codificator rotativ

Dragi prieteni bun venit la un alt tutorial! În acest videoclip vom învăța cum să construim propriul meniu pentru popularul ecran LCD Nokia 5110, pentru a face proiectele noastre mai ușor de utilizat și mai capabile. Să începem!

Acesta este proiectul pe care urmează să îl construim. Pe afișaj apare un meniu simplu și cu ajutorul codificatorului rotativ pot naviga în sus sau în jos și pot selecta un element de meniu apăsând butonul codificatorului rotativ. Când este apăsat butonul din mijloc al codificatorului rotativ, apare un alt ecran și putem schimba valoarea unei variabile. Dacă mai apăsăm încă o dată butonul codificatorului rotativ, ne întoarcem la ecranul meniului principal. Meniul are 6 elemente și putem derula în jos sau în sus meniul, iar elementele de pe afișaj se vor schimba corespunzător. Urmăriți videoclipul atașat pentru a vedea exact cum funcționează acest meniu. Desigur, îl puteți modifica pentru a vă crea propriile meniuri mai complexe, dacă doriți.

Să vedem acum cum să construim acest proiect.

Pasul 1: obțineți toate părțile

Obțineți toate piesele
Obțineți toate piesele

Părțile necesare pentru construirea acestui proiect sunt următoarele:

  • Un Arduino Uno ▶
  • Un ecran LCD Nokia 5110 ▶
  • Un codificator rotativ ▶
  • Un mic panou de lucru ▶
  • Unele fire ▶
  • Power Bank ▶

Costul proiectului este foarte mic, este mai mic de 10 USD. Puteți găsi link-uri pentru toate părțile pe care le folosesc în descrierea videoclipului de mai jos.

Pasul 2: Afișaj LCD Nokia 5110

Image
Image
Construirea proiectului
Construirea proiectului

Nokia 5110 este ecranul meu preferat pentru proiectele mele Arduino.

Nokia 5110 este un ecran LCD grafic de bază care a fost inițial destinat ca ecran de telefon mobil. Folosește controlerul PCD8544, care este un controler / driver CMOS LCD de mică putere. Din această cauză, acest afișaj are un consum de energie impresionant. Folosește doar 0,4 mA când este pornit, dar iluminarea de fundal este dezactivată. Folosește mai puțin de 0,06mA în modul de repaus! Acesta este unul dintre motivele care fac din acest afiș preferatul meu. PCD8544 se interfață la microcontrolere printr-o interfață de magistrală serială. Acest lucru face ca afișajul să fie foarte ușor de utilizat cu Arduino. Trebuie doar să conectați 8 fire.

Am pregătit un tutorial detaliat despre modul de utilizare a ecranului LCD Nokia 5110 cu Arduino. Am atașat acel videoclip în acest instructabil, acesta va oferi informații utile despre afișaj, așa că vă încurajez să îl urmăriți cu atenție. Costul afișajului este de aproximativ 4 USD.

O puteți obține aici: ▶

Pasul 3: Codificator rotativ

Image
Image

Un codificator rotativ, numit și codificator de arbore, este un dispozitiv electromecanic care convertește poziția unghiulară sau mișcarea unui arbore sau axă într-un cod analogic sau digital. Codificatoarele rotative sunt utilizate în multe aplicații care necesită o rotație precisă nelimitată a arborelui - inclusiv controale industriale, robotică, lentile fotografice cu destinație specială, dispozitive de intrare pentru computer (cum ar fi șoareci optomecanici și trackballs), reometre de tensiune controlate și platforme radar rotative.

Codificatorul rotativ pe care îl vom folosi în acest proiect este un codificator foarte ieftin. De asemenea, are un buton încorporat și, pentru a-l face să funcționeze, trebuie doar să conectăm 5 fire. Am pregătit un tutorial detaliat despre cum să utilizați un codificator rotativ. Puteți găsi acest videoclip atașat aici.

Costul acestui codificator rotativ este foarte mic. Costă în jur de 1,5 USD.

O puteți obține aici ▶

Pasul 4: Construirea proiectului

Image
Image
Construirea proiectului
Construirea proiectului
Construirea proiectului
Construirea proiectului

Să conectăm acum toate părțile împreună. Înainte de a construi acest proiect, dacă nu ați folosit un codificator rotativ în trecut, vă încurajez să urmăriți tutorialul pe care l-am pregătit despre codificatoarele rotative. Vă va ajuta să înțelegeți cum funcționează codificatoarele rotative și veți câștiga o oarecare experiență cu ele. Acest videoclip este atașat aici.

Am așezat afișajul pe o placă mică de acest gen. Să conectăm mai întâi afișajul. Primul pin al afișajului care este Resetare merge la pinul digital 3 al Arduino Uno, al doilea pin merge la pinul digital 4, al treilea pin merge la pinul digital 5, al patrulea pin la pinul digital 11 și al cincilea pin la digital pinul 13. Următorul pin este Vcc. Conectăm Vcc la șina pozitivă a panoului și șina pozitivă la ieșirea de 3,3V a Arduino. Următorul pin este Lumina de fundal pentru afișaj. Deoarece vrem să-l controlăm prin intermediul software-ului, îl conectăm la pinul digital 7. Ultimul pin este GND. Conectăm GND la șina negativă a panoului, iar șina negativă a panoului la Arduino GND.

Acum tot ce trebuie să facem este să conectăm codificatorul rotativ. Primul pin este GND și îl conectăm la șina negativă a panoului. Următorul pin este Vcc și îl conectăm la șina pozitivă a panoului. Următorul pin este SW și îl conectăm la pinul analogic 2. Următorul pin se numește DT și îl conectăm la pinul analogic 1. În cele din urmă pinul CLK este conectat la pinul analogic 0. Puteți găsi schema acestui proiect în descrierea videoclipului de mai jos.

Acum suntem gata să pornim proiectul. După cum puteți vedea, proiectul funcționează bine, iar meniul funcționează conform așteptărilor! Super, să vedem acum software-ul proiectului.

Pasul 5: Codul proiectului

Codul proiectului
Codul proiectului

În acest proiect folosim 4 biblioteci. Folosim două biblioteci pentru afișaj și două pentru codificatorul rotativ.

  1. Adafruit GFX:
  2. Nokia 5110:
  3. Biblioteca Codificator:
  4. Biblioteca TimerOne:

La început vom arunca o privire la funcția drawMenu. Această funcție este responsabilă pentru desenarea meniului pe afișaj. Această funcție este numită la fiecare câteva milisecunde, deci dacă există o modificare în meniu, această funcție este responsabilă pentru actualizarea meniului de pe ecran.

int menuitem = 1; int frame = 1; pagina int = 1; int lastMenuItem = 1;

Există, de asemenea, 3 variabile globale foarte importante, pagina variabilă, menuitem variabilă și cadrul variabil. Pagina variabilă reține ce ecran UI este afișat pe ecran. Deci, dacă variabila de pagină este 1, ne aflăm în ecranul UI principal, iar dacă variabila este 2, ne aflăm în ecranul UI secundar, unde setăm valoarea unei variabile. Elementul de meniu reține elementul de meniu selectat. Deci, dacă valoarea sa este 1, este selectat primul element de meniu, deci funcția drawMenu trebuie să deseneze acest element de meniu ca negru cu litere albe. Dacă elementul de meniu este 2, este selectat al doilea element de meniu și așa mai departe. Variabila cadru, reține care parte a meniului este afișată pe ecran. Deoarece meniul pe care l-am creat conține 6 elemente și putem afișa doar 3 dintre ele odată, trebuie să știm ce elemente sunt afișate pe ecran. Variabila cadru ne spune exact acest lucru. Dacă variabila cadru are valoarea 1, afișăm primele trei elemente de meniu, dacă este 2, afișăm elementele 2, 3, 4 și așa mai departe.

Am încercat să fac codul cât mai ușor de modificat, așa că am creat câteva variabile globale care conțin numele elementelor de meniu. În acest fel, vă puteți crea propriile meniuri cu ușurință fără a căuta în cod.

String menuItem1 = "Contrast"; String menuItem2 = "Volum"; String menuItem3 = "Limbă"; String menuItem4 = "Dificultate"; String menuItem5 = "Light: ON"; String menuItem6 = "Reset";

iluminare booleană = adevărat;

int contrast = 60; volum int = 50;

Limbajul șirului [3] = {"EN", "ES", "EL"};

int selectedLanguage = 0;

Dificultate în șir [2] = {"EASY", "HARD"};

int selectedDificultate = 0;

La început, inițializăm toate variabilele globale care sunt necesare în cod. Apoi inițializăm afișajul. În funcția de buclă, la început apelăm funcția drawMenu pentru a desena meniul pe ecran. Apoi citim valoarea din codificatorul rotativ și verificăm dacă butonul este apăsat. De exemplu, dacă suntem pe ecranul principal al interfeței de utilizare și este selectat primul element de meniu, dacă valoarea din codificatorul rotativ a crescut, variabila menuitem crește și în bucla următoare funcția drawMenu va desena al doilea element de meniu așa cum este selectat. Dacă apăsăm acum butonul codificatorului rotativ, navigăm la a doua pagină, unde setăm valoarea variabilei. Din nou folosind codificatorul rotativ putem crește sau micșora valoarea variabilei. Dacă apăsăm butonul, navigăm înapoi la pagina meniului principal, iar variabila paginii scade.

Aceasta este ideea de bază din spatele acestui meniu. Urmăm aceeași procedură pentru toate elementele de meniu și paginile. Codul este complex, are peste 400 de linii. Pare complicat, dar dacă îl încercați singur, îl veți înțelege mai ușor și îl veți putea schimba, extinde și utiliza în propriile proiecte. Ca întotdeauna, puteți găsi codul atașat aici.

Pasul 6: Testarea proiectului

Testarea proiectului
Testarea proiectului

Dacă încărcăm codul, putem vedea că proiectul funcționează conform așteptărilor. Putem naviga prin meniu în sus și în jos folosind axul și putem selecta orice element de meniu apăsând butonul codificatorului rotativ. Cat de tare e asta!

Acum, că știm cum să construim meniuri pentru ecranele LCD Nokia 5110, putem adăuga mai multe funcții proiectelor noastre și le putem face mai ușor de utilizat. Totuși, acest meniu simplu pe care l-am construit astăzi poate fi îmbunătățit. Am putea folosi întreruperi în loc să verificăm stările butoanelor tot timpul. Astfel putem reduce consumul de energie al proiectului și putem face codul mai curat. În curând voi pregăti un videoclip despre întreruperi, așa că rămâneți la curent. Mi-ar plăcea să vă aud părerea despre acest proiect de meniu. Vi se pare util și intenționați să utilizați un meniu în oricare dintre proiectele dvs. Vă rugăm să publicați gândurile și ideile dvs. mai jos, mulțumesc!

Recomandat: