Sadržaj:
- Korak 1: Nabavite sve dijelove
- Korak 2: Nokia 5110 LCD ekran
- Korak 3: Rotacijski koder
- Korak 4: Izgradnja projekta
- Korak 5: Kôd projekta
- Korak 6: Testiranje projekta
Video: Arduino meni na Nokia 5110 LCD -u pomoću rotacijskog kodera: 6 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Dragi prijatelji, dobrodošli na još jedan vodič! U ovom videu ćemo naučiti kako izgraditi vlastiti meni za popularni Nokia 5110 LCD ekran kako bismo naše projekte učinili prilagođenijima korisnicima i sposobnijim. Hajde da počnemo!
Ovo je projekat koji ćemo graditi. Na ekranu se pojavljuje jednostavan meni, a pomoću rotacijskog davača mogu se kretati prema gore ili prema dolje i birati stavku menija pritiskom na tipku okretnog kodera. Kada se pritisne srednje dugme okretnog davača, pojavljuje se drugi ekran i možemo promijeniti vrijednost varijable. Ako još jednom pritisnemo tipku rotacijskog kodera, vraćamo se na ekran glavnog izbornika. Izbornik ima 6 stavki, a mi se možemo pomicati prema dolje ili prema gore i stavke na ekranu će se mijenjati u skladu s tim. Pogledajte priloženi video da biste vidjeli kako ovaj izbornik funkcionira. Naravno, možete ga izmijeniti kako biste izgradili vlastite složenije jelovnike ako želite.
Pogledajmo sada kako izgraditi ovaj projekt.
Korak 1: Nabavite sve dijelove
Dijelovi potrebni za izgradnju ovog projekta su sljedeći:
- Arduino Uno ▶
- Nokia 5110 LCD ekran ▶
- Rotacijski koder ▶
- Mala ploča ▶
- Neke žice ▶
- Power Bank ▶
Troškovi projekta su vrlo niski, manji su od 10 USD. Veze za sve dijelove koje koristim možete pronaći u opisu video zapisa ispod.
Korak 2: Nokia 5110 LCD ekran
Nokia 5110 je moj omiljeni ekran za moje Arduino projekte.
Nokia 5110 je osnovni grafički LCD ekran koji je prvobitno bio zamišljen kao ekran mobilnog telefona. Koristi kontroler PCD8544 koji je CMOS LCD kontroler/upravljački program male snage. Zbog toga ovaj ekran ima impresivnu potrošnju energije. Kada je uključen, koristi samo 0,4 mA, ali je pozadinsko osvjetljenje onemogućeno. U stanju mirovanja koristi manje od 0,06 mA! To je jedan od razloga zbog kojih ovaj ekran postaje moj omiljeni. PCD8544 se povezuje sa mikrokontrolerima preko interfejsa serijske magistrale. To čini zaslon vrlo lakim za upotrebu s Arduinom. Potrebno je samo spojiti 8 žica.
Pripremio sam detaljan vodič o tome kako koristiti Nokia 5110 LCD ekran s Arduinom. Priložio sam taj video zapis u ovaj Instructable, koji će pružiti korisne informacije o ekranu, pa vas ohrabrujem da ga pažljivo pogledate. Cijena ekrana je oko 4 USD.
Možete ga dobiti ovdje: ▶
Korak 3: Rotacijski koder
Rotacijski davač, koji se naziva i davač vratila, je elektromehanički uređaj koji pretvara kutni položaj ili kretanje vratila ili osovine u analogni ili digitalni kod. Rotacijski koderi koriste se u mnogim aplikacijama koje zahtijevaju precizno neograničeno okretanje vratila-uključujući industrijske kontrole, robotiku, fotografske leće posebne namjene, računalne ulazne uređaje (kao što su optomehanički miševi i kuglice za praćenje), kontrolirane reometre naprezanja i rotirajuće radarske platforme.
Rotacijski koder koji ćemo koristiti u ovom projektu vrlo je jeftin koder. Također ima ugrađeno dugme, a da bi funkcioniralo potrebno nam je samo spojiti 5 žica. Pripremio sam detaljan vodič o tome kako koristiti rotacijski davač. Ovaj video zapis možete pronaći u prilogu ovdje.
Cijena ovog rotacijskog kodera je vrlo niska. Košta oko 1,5 USD.
Možete ga preuzeti ovdje ▶
Korak 4: Izgradnja projekta
Sada spojimo sve dijelove zajedno. Prije izgradnje ovog projekta, ako u prošlosti niste koristili rotacijski davač, preporučujem vam da pogledate vodič koji sam pripremio o rotacijskim koderima. Pomoći će vam da razumijete kako rade rotacijski davači i steći ćete neko iskustvo s njima. Ovaj video zapis je u prilogu ovdje.
Postavio sam ekran na malu ploču poput ove. Prvo povežemo ekran. Prvi pin displeja koji je resetiran ide na digitalni pin 3 Arduino Uno, drugi pin na digitalni pin 4, treći pin na digitalni pin 5, četvrti pin na digitalni pin 11 i peti pin na digitalni pin 13. Sljedeći pin je Vcc. Priključujemo Vcc na pozitivnu vodilicu matične ploče, a pozitivnu vodilicu na matičnu ploču na izlaz 3.3V Arduina. Sljedeći pin je Pozadinsko osvjetljenje ekrana. Budući da ga želimo kontrolirati putem softvera, povezujemo ga na digitalni pin 7. Posljednji pin je GND. Priključujemo GND na negativnu vodilicu matične ploče, a negativnu vodilicu matične ploče na Arduino GND.
Sada sve što trebamo učiniti je spojiti rotacijski davač. Prvi pin je GND i povezujemo ga s negativnom šinom matične ploče. Sljedeći pin je Vcc i povezujemo ga s pozitivnom vodilicom matične ploče. Sljedeći pin je SW i spajamo ga na analogni pin 2. Sljedeći pin se zove DT i povezujemo ga na analogni pin 1. Na kraju je pin CLK spojen na analogni pin 0. Shematski dijagram ovog projekta možete pronaći u opis videa ispod.
Sada smo spremni za pojačavanje projekta. Kao što vidite, projekt radi dobro, a meni radi prema očekivanjima! Odlično, pogledajmo sada softver projekta.
Korak 5: Kôd projekta
U ovom projektu koristimo 4 biblioteke. Za prikaz koristimo dvije biblioteke, a za okretni davač dvije.
- Adafruit GFX:
- Nokia 5110:
- Biblioteka kodera:
- TimerOne biblioteka:
Prvo ćemo pogledati funkciju drawMenu. Ova funkcija je odgovorna za iscrtavanje menija na ekranu. Ova funkcija se poziva svakih nekoliko milisekundi, pa ako dođe do promjene u meniju ova funkcija je odgovorna za ažuriranje menija na ekranu.
int menuitem = 1; int frame = 1; int stranica = 1; int lastMenuItem = 1;
Postoje i 3 vrlo važne globalne promenljive, stranica promenljive, promenljiva stavka menija i okvir promenljive. Promenljiva stranica pamti koji je korisnički interfejs prikazan na ekranu. Dakle, ako je varijabla stranice 1, nalazimo se na glavnom ekranu korisničkog sučelja, a ako je varijabla 2 nalazimo se na sekundarnom ekranu korisničkog sučelja gdje postavljamo vrijednost varijabli. Stavka menija pamti odabranu stavku menija. Dakle, ako je njegova vrijednost 1, prva stavka izbornika je odabrana, pa funkcija drawMenu mora nacrtati ovu stavku izbornika kao crnu s bijelim slovima. Ako je stavka menija 2, bira se druga stavka menija i tako dalje. Promenljiva okvira, pamti koji deo menija je prikazan na ekranu. Budući da izbornik koji smo stvorili sadrži 6 stavki i možemo prikazati samo 3 odjednom, moramo znati koje su stavke prikazane na ekranu. Okvirna varijabla govori nam upravo ovo. Ako varijabla okvira ima vrijednost 1, prikazujemo prve tri stavke menija, ako je 2, prikazujemo stavke 2, 3, 4 itd.
Pokušao sam učiniti kôd što je moguće lakšim za izmjenu pa sam stvorio neke globalne varijable koje sadrže nazive stavki izbornika. Na ovaj način možete lako stvoriti vlastite menije bez pretraživanja koda.
String menuItem1 = "Contrast"; String menuItem2 = "Volume"; String menuItem3 = "Jezik"; String menuItem4 = "Teškoća"; String menuItem5 = "Svetlo: UKLJUČENO"; String menuItem6 = "Reset";
boolean backlight = true;
int kontrast = 60; int volumen = 50;
Jezični niz [3] = {"EN", "ES", "EL"};
int selectedLanguage = 0;
Težina niza [2] = {"EASY", "HARD"};
int selectedDifficulty = 0;
Prvo inicijaliziramo sve globalne varijable koje su potrebne u kodu. Zatim inicijaliziramo prikaz. U funkciji petlje prvo pozivamo funkciju drawMenu za crtanje izbornika na ekranu. Zatim očitavamo vrijednost iz rotacijskog davača i provjeravamo je li pritisnuto dugme. Na primjer, ako smo na glavnom ekranu korisničkog sučelja i odabrana je prva stavka izbornika, ako se vrijednost iz okretnog davača povećala, varijabla stavke menija se povećava, a u sljedećoj petlji funkcija drawMenu će nacrtati drugu stavku izbornika kao odabranu. Ako sada pritisnemo tipku rotacijskog kodera, krećemo na drugu stranicu, gdje postavljamo vrijednost varijable. Opet pomoću rotacijskog kodera možemo povećati ili smanjiti vrijednost varijable. Ako pritisnemo dugme, vraćamo se na stranicu glavnog izbornika, a varijabla stranice se smanjuje.
To je osnovna ideja ovog menija. Slijedimo istu proceduru za sve stavke izbornika i stranice. Kôd je složen, dugačak je preko 400 redova. Čini se komplicirano, ali ako sami isprobate, lakše ćete ga razumjeti i moći ćete ga promijeniti, proširiti i koristiti u vlastitim projektima. Kao i uvijek, ovdje možete pronaći priloženi kôd.
Korak 6: Testiranje projekta
Ako učitamo kôd možemo vidjeti da projekt radi kako se očekuje. Pomoću vratila možemo se kretati gore -dolje kroz izbornik, a bilo koju stavku izbornika možemo odabrati pritiskom na tipku okretnog kodera. Kako je to super!
Sada kada znamo kako izgraditi menije za Nokia 5110 LCD zaslone, možemo svojim projektima dodati više funkcija i učiniti ih prilagođenijima korisnicima. Ovaj jednostavan meni koji smo danas izgradili može se poboljšati. Mogli bismo koristiti prekide umjesto da stalno provjeravamo stanje dugmeta. Na ovaj način možemo smanjiti potrošnju energije projekta i učiniti kod čistijim. Uskoro ću pripremiti video zapis o prekidima, pa pratite nas. Volio bih čuti vaše mišljenje o ovom jelovničkom projektu. Smatrate li da je to korisno i planirate li koristiti jelovnik u bilo kojem svom projektu. Molimo vas da svoje misli i ideje objavite ispod, hvala!
Preporučuje se:
Zamjena rotacijskog davača ISDT Q6: 4 koraka
Zamjena rotacijskog kodera ISDT Q6: Ovaj vodič služi kako bi pomogao ljudima koji su Q6 koderi s vremenom prešli u sh*t da postanu neupotrebljivi. Moj se počeo pomicati u nasumičnim, neredovnim smjerovima, pa čak i nakon što je preformulirao lemne spojeve i očistio koder alkoholom, to je i dalje bilo neispravno
USB dugme za jačinu zvuka pomoću DigiSparka i rotacionog kodera: 3 koraka
USB gumb za jačinu zvuka pomoću DigiSparka i rotacijskog kodera: Ovo je super jeftin USB gumb za kontrolu glasnoće. Ponekad je tradicionalno dugme prikladnije za upravljanje stvarima, a ne za klikanje miša svuda. Ovaj projekt koristi DigiSpark, rotacijski koder i USB knjižnicu Adafruit Trinket (https: //github.c
Meni u Arduinu i kako koristiti dugmad: 10 koraka (sa slikama)
Izbornik u Arduinu i kako koristiti gumbe: U mom vodiču za Arduino 101 bit ćete naučeni kako postaviti svoje okruženje u Tinkercadu. Koristim Tinkercad jer je to prilično moćna internetska platforma koja mi omogućava da demonstriram niz vještina studentima za izgradnju sklopova. Osjećaj se slobodno da
Prikaz očitanja arduino senzora uživo na LCD zaslonu Nokia 5110: 4 koraka (sa slikama)
Prikažite očitavanja arduino senzora uživo na LCD zaslonu Nokia 5110: ako ste ikada radili s arduinom, vjerojatno ste htjeli da prikaže očitanja senzora. Upotreba serijskog monitora je sasvim u redu, ali budući da ste zlonamjerni u arduinu brzo postajete vjerovatno želite da prikaže očitanja na nečemu moru
Vodič za komplet rotacijskog kodera: 5 koraka
Komplet rotacijskog kodera Vodič: Opis: Ovaj komplet rotacijskog davača može se koristiti za mjerenje položaja i brzine motora. To je vrlo jednostavan komplet koji se sastoji od senzora optičkog snopa (opto prekidač, fototranzistor) i komada diska s prorezima. Može se povezati na bilo koji mikrokontroler