Sadržaj:
- Korak 1: Nabavite sve dijelove
- Korak 2: Nokia 5110 LCD zaslon
- Korak 3: Rotacijski davač
- Korak 4: Izgradnja projekta
- Korak 5: Kôd projekta
- Korak 6: Testiranje projekta
Video: Arduino izbornik na Nokia 5110 LCD -u pomoću rotacijskog kodera: 6 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Dragi prijatelji, dobrodošli u još jedan vodič! U ovom videu naučit ćemo kako izgraditi vlastiti izbornik za popularni Nokia 5110 LCD zaslon, kako bismo naše projekte učinili prilagođenijima korisnicima i sposobnijim. Započnimo!
Ovo je projekt koji ćemo graditi. Na zaslonu se pojavljuje jednostavan izbornik, a uz pomoć rotacijskog davača mogu se kretati prema gore ili prema dolje i birati stavku izbornika pritiskom na tipku okretnog davača. Kad se pritisne srednja tipka okretnog davača, pojavljuje se drugi zaslon i možemo promijeniti vrijednost varijable. Ako još jednom pritisnemo gumb okretnog kodera, vraćamo se na zaslon glavnog izbornika. Izbornik ima 6 stavki, a mi se možemo pomicati prema dolje ili prema gore i stavke na zaslonu će se prema tome mijenjati. 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 ▶
- LCD zaslon Nokia 5110 ▶
- Rotacijski koder ▶
- Mala ploča ▶
- Neke žice ▶
- Power Bank ▶
Troškovi projekta su vrlo niski, manji su od 10 USD. Linkove za sve dijelove koje koristim možete pronaći u opisu donjeg videa.
Korak 2: Nokia 5110 LCD zaslon
Nokia 5110 je moj omiljeni zaslon za moje Arduino projekte.
Nokia 5110 osnovni je grafički LCD zaslon koji je izvorno bio namijenjen za zaslon mobitela. Koristi kontroler PCD8544 koji je CMOS LCD kontroler/upravljački program male snage. Zbog toga ovaj zaslon ima impresivnu potrošnju energije. Kad 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 je ovaj ekran moj omiljeni. PCD8544 povezuje se s mikrokontrolerima putem sučelja serijske sabirnice. To čini zaslon vrlo lakim za korištenje s Arduinom. Potrebno je samo spojiti 8 žica.
Pripremio sam detaljan vodič o tome kako koristiti LCD zaslon Nokia 5110 s Arduinom. Video zapis sam priložio u ovu uputu za uporabu, on će vam možda dati korisne informacije o zaslonu, pa vas potičem da ga pažljivo pogledate. Cijena ekrana je oko 4 USD.
Možete ga dobiti ovdje: ▶
Korak 3: Rotacijski davač
Rotacijski davač, koji se naziva i davač vratila, elektromehanički je uređaj koji pretvara kutni položaj ili kretanje osovine 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 davač koji ćemo koristiti u ovom projektu vrlo je jeftin koder. Također ima ugrađen gumb, a kako bi funkcionirao potrebno je spojiti samo 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 dolara.
Možete ga dobiti ovdje ▶
Korak 4: Izgradnja projekta
Spojimo sada 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 prilog je ovdje.
Zaslon sam postavio na malu ploču poput ove. Prvo spojimo zaslon. Prvi pin na zaslonu koji je Reset 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 tračnicu matične ploče, a pozitivnu vodilicu na matičnu ploču na izlaz 3.3V Arduina. Sljedeći pin je Pozadinsko osvjetljenje zaslona. Budući da ga želimo kontrolirati putem softvera, povezujemo ga s digitalnim pinom 7. Posljednji pin je GND. Priključujemo GND na negativnu vodilicu ploče, a negativnu vodilicu ploče na Arduino GND.
Sada nam preostaje samo spojiti rotacijski davač. Prvi pin je GND i povezujemo ga s negativnom vodilicom 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 povezujemo ga s analognim pinom 2. Sljedeći pin ima naziv DT i povezujemo ga s analognim pinom 1. Na kraju je pin CLK spojen na analogni pin 0. Shematski dijagram ovog projekta možete pronaći u opis donjeg videa.
Sada smo spremni za pojačavanje projekta. Kao što vidite, projekt dobro radi, a jelovnik radi prema očekivanjima! Odlično, pogledajmo sada softver projekta.
Korak 5: Kôd projekta
U ovom projektu koristimo 4 knjižnice. Za prikaz koristimo dvije knjižnice, a za okretni davač dvije.
- Adafruit GFX:
- Nokia 5110:
- Knjižnica kodera:
- Knjižnica TimerOne:
Prvo ćemo pogledati funkciju drawMenu. Ova funkcija je odgovorna za iscrtavanje izbornika na zaslonu. Ova se funkcija poziva svakih nekoliko milisekundi, pa ako dođe do promjene u izborniku ova funkcija je odgovorna za ažuriranje izbornika na ekranu.
int menuitem = 1; int frame = 1; int stranica = 1; int lastMenuItem = 1;
Postoje i 3 vrlo važne globalne varijable, stranica varijable, varijabla izbornika i okvir varijable. Promjenjiva stranica pamti koji je zaslon korisničkog sučelja prikazan na zaslonu. Dakle, ako je varijabla stranice 1, nalazimo se na glavnom zaslonu korisničkog sučelja, a ako je varijabla 2 nalazimo se na sekundarnom zaslonu korisničkog sučelja gdje postavljamo vrijednost varijabli. Stavka izbornika pamti odabranu stavku izbornika. Dakle, ako je njegova vrijednost 1, odabire se prva stavka izbornika, pa funkcija drawMenu mora nacrtati ovu stavku izbornika kao crnu s bijelim slovima. Ako je stavka izbornika 2, odabrana je druga stavka izbornika i tako dalje. Varijabla okvira pamti koji je dio izbornika 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. Varijabla okvira, govori nam upravo ovo. Ako varijabla okvira ima vrijednost 1, prikazujemo prve tri stavke izbornika, 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 taj način možete jednostavno stvoriti vlastite izbornike bez pretraživanja koda.
String menuItem1 = "Contrast"; String menuItem2 = "Volume"; String menuItem3 = "Jezik"; String menuItem4 = "Poteškoće"; String menuItem5 = "Svjetlo: UKLJUČENO"; String menuItem6 = "Poništi";
logičko pozadinsko osvjetljenje = istina;
int kontrast = 60; int volumen = 50;
Jezični niz [3] = {"EN", "ES", "EL"};
int selectedLanguage = 0;
Težina niza [2] = {"LAKO", "TEŠKO"};
int odabranaTeškoća = 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 pritisnuta tipka. Na primjer, ako smo na glavnom zaslonu korisničkog sučelja i odabrana je prva stavka izbornika, ako se vrijednost iz rotacijskog davača povećala, varijabla stavke izbornika se povećava, a u sljedećoj petlji funkcija drawMenu povući će drugu stavku izbornika kao odabranu. Ako sada pritisnemo gumb rotacijskog davača, idemo na drugu stranicu, gdje postavljamo vrijednost varijable. Ponovno pomoću rotacijskog davača možemo povećati ili smanjiti vrijednost varijable. Ako pritisnemo gumb, vraćamo se na stranicu glavnog izbornika, a varijabla stranice se smanjuje.
To je osnovna ideja ovog izbornika. Slijedimo isti postupak za sve stavke izbornika i stranice. Kôd je složen, dugačak je preko 400 redaka. Čini se komplicirano, ali ako sami pokušate, lakše ćete to razumjeti i moći ćete ga promijeniti, proširiti i koristiti u svojim 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 prema očekivanjima. Pomoću osovine možemo se kretati gore -dolje po izborniku, a bilo koju stavku izbornika možemo odabrati pritiskom na gumb za okretanje. Kako je to cool!
Sada kada znamo izraditi izbornike za Nokijine 5110 LCD zaslone, našim projektima možemo dodati više značajki i učiniti ih prilagođenijima korisnicima. Ovaj jednostavan jelovnik koji smo danas izgradili može se poboljšati. Mogli bismo koristiti prekide umjesto da stalno provjeravamo stanje gumba. Na ovaj način možemo smanjiti potrošnju energije projekta i učiniti kôd čistijim. Uskoro ću pripremiti video o prekidima, pa pratite nas. Volio bih čuti vaše mišljenje o ovom projektu izbornika. Smatrate li da je to korisno i planirate li koristiti jelovnik u bilo kojem svom projektu. Molimo da svoje misli i ideje objavite u nastavku, hvala!
Preporučeni:
Arduino OLED izbornik s opcijom odabira: 8 koraka
Arduino OLED izbornik s opcijom odabira: U ovom ćemo vodiču naučiti kako napraviti izbornik s opcijom odabira pomoću OLED zaslona i Visuina. Pogledajte video
Izbornik stepenaste kontrole brzine za Arduino: 6 koraka
Izbornik koračne kontrole brzine za Arduino: Ova SpeedStepper knjižnica je prepisivanje knjižnice AccelStepper kako bi se omogućila kontrola brzine koračnog motora. Knjižnica SpeedStepper omogućuje vam promjenu zadane brzine motora, a zatim ubrzava/usporava do nove zadane brzine koristeći isti algoritam
USB gumb za glasnoću pomoću DigiSparka i rotacijskog kodera: 3 koraka
USB gumb za glasnoću pomoću DigiSparka i rotacijskog kodera: Ovo je super jeftin USB gumb za kontrolu glasnoće. Nekad je tradicionalnim gumbima prikladnije kontrolirati stvari, a ne kliknuti mišem posvuda. Ovaj projekt koristi DigiSpark, rotacijski koder i USB knjižnicu Adafruit Trinket (https: //github.c
Izbornik u Arduinu i kako koristiti gumbe: 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ćuje da studentima demonstriram niz vještina za izgradnju sklopova. Slobodno
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 spojiti na bilo koji mikrokontroler