INHOUDSOPGAWE:
- Stap 1: Kry al die onderdele
- Stap 2: Nokia 5110 LCD -skerm
- Stap 3: Rotary Encoder
- Stap 4: Bou die projek
- Stap 5: Die kode van die projek
- Stap 6: Toets die projek
Video: Arduino -spyskaart op 'n Nokia 5110 LCD met 'n roterende enkodeerder: 6 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Liewe vriende, welkom by nog 'n les! In hierdie video gaan ons leer hoe om ons eie spyskaart vir die gewilde Nokia 5110 LCD -skerm te bou om ons projekte meer gebruikersvriendelik en bekwamer te maak. Laat ons begin!
Dit is die projek wat ons gaan bou. Op die skerm verskyn 'n eenvoudige spyskaart, en met die hulp van die draaikodeerder kan ek op en af navigeer en 'n spyskaartitem kies deur op die draaiknop te druk. As die middelste knoppie van die roterende encoder ingedruk word, verskyn 'n ander skerm en kan ons die waarde van 'n veranderlike verander. As ons nog 'n keer op die draaiknopknoppie druk, gaan ons terug na die hoofkieslys. Die spyskaart het 6 items, en ons kan af of op die spyskaart blaai, en die items op die skerm sal dienooreenkomstig verander. Kyk na die aangehegte video om presies te sien hoe hierdie spyskaart werk. U kan dit natuurlik aanpas om u eie meer komplekse spyskaarte te bou as u wil.
Kom ons kyk nou hoe u hierdie projek kan bou.
Stap 1: Kry al die onderdele
Die onderdele wat nodig is om hierdie projek te bou, is die volgende:
- 'N Arduino Uno ▶
- 'N Nokia 5110 LCD -skerm ▶
- 'N Rotary Encoder ▶
- 'N Klein broodbord ▶
- Sommige drade ▶
- Power Bank ▶
Die koste van die projek is baie laag, dit is minder as $ 10. U kan skakels vind vir al die dele wat ek gebruik in die beskrywing van die video hieronder.
Stap 2: Nokia 5110 LCD -skerm
Die Nokia 5110 is my gunsteling skerm vir my Arduino -projekte.
Die Nokia 5110 is 'n basiese grafiese LCD -skerm wat oorspronklik bedoel was as 'n selfoonskerm. Dit gebruik die PCD8544 -beheerder, 'n lae krag CMOS LCD -beheerder/bestuurder. As gevolg hiervan het hierdie skerm 'n indrukwekkende kragverbruik. Dit gebruik slegs 0,4mA as dit aan is, maar die agtergrond is uitgeskakel. Dit gebruik minder as 0,06mA in die slaapmodus! Dit is een van die redes waarom hierdie vertoning my gunsteling is. Die PCD8544 koppelvlak aan mikrobeheerders via 'n seriële bus -koppelvlak. Dit maak die skerm baie maklik om te gebruik met Arduino. U hoef slegs 8 drade aan te sluit.
Ek het 'n gedetailleerde handleiding opgestel oor hoe om die Nokia 5110 LCD -skerm met Arduino te gebruik. Ek het die video in hierdie instruksies aangeheg; dit bevat baie nuttige inligting oor die skerm, so ek moedig u aan om dit noukeurig te kyk. Die koste van die vertoning beloop ongeveer $ 4.
U kan dit hier kry: ▶
Stap 3: Rotary Encoder
'N Draaikodeerder, ook 'n as-enkodeerder genoem, is 'n elektro-meganiese toestel wat die hoekposisie of beweging van 'n as of as omskakel na 'n analoog of digitale kode. Roterende encoders word in baie toepassings gebruik wat presiese as-onbeperkte rotasie benodig, insluitend industriële kontroles, robotika, fotografiese lense vir spesiale doeleindes, rekenaarinvoertoestelle (soos optomeganiese muise en trackballs), beheerde spanningsreometers en roterende radarplatforms.
Die roterende encoder wat ons in hierdie projek gaan gebruik, is 'n baie goedkoop encoder. Dit het ook 'n ingeslote knoppie, en om dit te laat werk, hoef ons slegs 5 drade aan te sluit. Ek het 'n gedetailleerde handleiding voorberei vir die gebruik van 'n roterende encoder. U kan hierdie video hier aangeheg vind.
Die koste van hierdie roterende encoder is baie laag. Dit kos ongeveer $ 1,5.
U kan dit hier kry ▶
Stap 4: Bou die projek
Kom ons verbind nou al die dele saam. Voordat u hierdie projek bou, as u nog nie 'n draaikodeerder gebruik het nie, raai ek u aan om na die tutoriaal te kyk wat ek oor roterende enkoders voorberei het. Dit sal u help om te verstaan hoe roterende enkoders werk, en u gaan ervaring daarmee opdoen. Hierdie video is hier aangeheg.
Ek het die skerm op 'n klein broodbord soos hierdie geplaas. Koppel eers die skerm. Die eerste pen van die skerm wat Reset is, gaan na digitale pen 3 van die Arduino Uno, die tweede pen na digitale pen 4, die derde pen na digitale pen 5, die vierde pen na digitale pen 11 en die vyfde pen na digitale pen 13. Die volgende pen is Vcc. Ons verbind Vcc met die positiewe spoor van die broodbord en die positiewe spoor van die broodbord met die 3.3V -uitset van die Arduino. Die volgende pen is 'Backlight' vir die skerm. Aangesien ons dit via die sagteware wil beheer, koppel ons dit aan digitale pen 7. Die laaste pen is GND. Ons verbind GND met die negatiewe spoor van die broodbord en die negatiewe spoor van die broodbord met Arduino GND.
Al wat ons hoef te doen is om die draaikodeerder aan te sluit. Die eerste pen is GND en ons koppel dit aan die negatiewe spoor van die broodbord. Die volgende pen is Vcc en ons koppel dit aan die positiewe spoor van die broodbord. Die volgende pen is SW en ons koppel dit aan analoog pen 2. Die volgende pen word DT genoem en ons koppel dit aan analoog pen 1. Laastens is die pen CLK gekoppel aan analoog pen 0. U kan die skematiese diagram van hierdie projek in die beskrywing van die video hieronder.
Nou is ons gereed om die projek aan die gang te sit. Soos u kan sien, werk die projek goed, en die spyskaart werk soos verwag! Fantasties, laat ons nou die sagteware van die projek sien.
Stap 5: Die kode van die projek
In hierdie projek gebruik ons 4 biblioteke. Ons gebruik twee biblioteke vir die vertoning, en twee vir die roterende enkodeerder.
- Adafruit GFX:
- Nokia 5110:
- Encoder Library:
- TimerOne -biblioteek:
Eerstens kyk ons na die drawMenu -funksie. Hierdie funksie is verantwoordelik om die spyskaart op die skerm te teken. Hierdie funksie word elke paar millisekondes genoem, dus as daar 'n verandering in die spyskaart is, is hierdie funksie verantwoordelik vir die opdatering van die spyskaart op die skerm.
int menuitem = 1; int raam = 1; int bladsy = 1; int lastMenuItem = 1;
Daar is ook 3 baie belangrike globale veranderlikes, die veranderlike bladsy, die veranderlike menuitem en die veranderlike raam. Die veranderlike bladsy onthou watter UI -skerm op die skerm vertoon word. Dus, as die bladsyveranderlike 1 is, is ons in die hoof -UI -skerm, en as die veranderlike 2 is, is ons in die sekondêre UI -skerm waar ons die waarde op 'n veranderlike stel. Die spyskaartitem onthou die gekose kieslysitem. As die waarde daarvan 1 is, word die eerste menu -item gekies, dus moet die drawMenu -funksie hierdie spyskaartitem swart met wit letters teken. As die menu -item 2 is, word die tweede menu -item gekies, ensovoorts. Die raamveranderlike onthou watter deel van die spyskaart op die skerm vertoon word. Aangesien die spyskaart wat ons geskep het, 6 items bevat en ons slegs 3 daarvan op 'n slag kan vertoon, moet ons weet watter items op die skerm verskyn. Die raamveranderlike vertel ons presies dit. As die raamveranderlike die waarde van 1 het, vertoon ons die eerste drie spyskaartitems, as dit 2 is, vertoon ons items 2, 3, 4 ensovoorts.
Ek het probeer om die kode so maklik as moontlik te verander, sodat ek 'n paar globale veranderlikes geskep het wat die name vir die spyskaartitems bevat. Op hierdie manier kan u maklik u eie spyskaarte skep sonder om in kode te soek.
String menuItem1 = "Kontras"; String menuItem2 = "Volume"; String menuItem3 = "Taal"; String menuItem4 = "Moeilikheid"; String menuItem5 = "Lig: AAN"; String menuItem6 = "Herstel";
boolean backlight = true;
int kontras = 60; int volume = 50;
Stringtaal [3] = {"EN", "ES", "EL"};
int selectedLanguage = 0;
String moeilikheidsgraad [2] = {"MAKLIK", "HARD"};
int geselekteerde probleem = 0;
Aanvanklik initialiseer ons al die globale veranderlikes wat in die kode benodig word. Vervolgens initialiseer ons die vertoning. In die lusfunksie noem ons eers die drawMenu -funksie om die spyskaart op die skerm te teken. Dan lees ons die waarde van die Rotary encoder en kyk of die knoppie ingedruk word. Byvoorbeeld, as ons op die hoof -UI -skerm is en die eerste menu -item gekies is, as die waarde van die draaikodeerder toegeneem het, neem die menuitem -veranderlike toe en in die volgende lus trek die drawMenu -funksie die tweede menu -item soos gekies. As ons nou op die knoppie van die roterende enkodeerder druk, gaan ons na die tweede bladsy, waar ons die waarde van die veranderlike stel. Met die roterende encoder kan ons die waarde van die veranderlike verhoog of verlaag. As ons op die knoppie druk, gaan ons terug na die hoofkieslysbladsy, en die bladsyveranderlike neem af.
Dit is die basiese idee agter hierdie spyskaart. Ons volg dieselfde prosedure vir al die spyskaartitems en bladsye. Die kode is kompleks, dit is meer as 400 reëls lank. Dit lyk ingewikkeld, maar as u dit self probeer, sal u dit makliker verstaan, en u kan dit verander, uitbrei en in u eie projekte gebruik. Soos altyd kan u die kode hier aangeheg vind.
Stap 6: Toets die projek
As ons die kode laai, kan ons sien dat die projek werk soos verwag. Ons kan deur die spyskaart op en af navigeer met behulp van die as, en ons kan enige spyskaartitem kies deur op die draaiknop -knoppie te druk. Hoe gaaf is dit nie!
Noudat ons weet hoe om spyskaarte vir die Nokia 5110 LCD -skerms te bou, kan ons meer funksies by ons projekte voeg en dit meer gebruikersvriendelik maak. Hierdie eenvoudige spyskaart wat ons vandag gebou het, kan egter verbeter word. Ons kan onderbrekings gebruik in plaas daarvan om die knoppies altyd te kontroleer. Op hierdie manier kan ons die kragverbruik van die projek verminder en die kode skoner maak. Ek sal binnekort 'n video oor onderbrekings voorberei, so bly ingeskakel. Ek hoor graag u mening oor hierdie spyskaartprojek. Vind u dit nuttig en is u van plan om 'n spyskaart in enige van u projekte te gebruik. Plaas u gedagtes en idees hieronder, dankie!
Aanbeveel:
Timer met Arduino en roterende enkodeerder: 5 stappe
Timer met Arduino en Rotary Encoder: Die timer is 'n instrument wat gereeld gebruik word in industriële en huishoudelike aktiwiteite. Daar is verskeie programme wat ek vir Ardui geskryf het
Hoe: 'n kontaklose roterende enkodeerder: 3 stappe
Hoe: 'n kontaklose roterende enkodeerder: hierdie toepassingsnota beskryf hoe u 'n draaiskakelaar of encoder met 'n hoë betroubaarheid kan ontwerp met behulp van 'n Dialog GreenPAK ™. Hierdie skakelaarontwerp is kontakloos en ignoreer dus kontakoksidasie en slytasie. Dit is ideaal om buite te gebruik waar daar lang is
Roterende enkodeerder met STM32 Nucleo -bord: 12 stappe
Rotary Encoder With STM32 Nucleo Board: Dit is 'n handleiding om die posisie van Rotary Encoder te kry, wat 'n inkrementele tipe encoder is. Encoders bestaan oor die algemeen uit twee tipes:- die een is inkrementeel, die ander is absoluut. .Maar as jy h
Beter roterende enkodeerder: 4 stappe
Beter roterende enkodeerder: as u ooit 'n roterende enkodeerder vir u projek probeer gebruik het, was u waarskynlik teleurstellend. Of dit nou te wyte was aan die moeilikheid van die opstel of die onnauwkeurige kontroles. Ek het dieselfde probleem gehad, so ek het besluit om dit op te los. Ek het 3D pr
Tutoriaal vir roterende enkodeerder met Arduino: 6 stappe
Tutoriaal vir roterende encoder met Arduino: Rotary encoder is 'n elektroniese komponent wat beweging en posisie kan monitor tydens rotasie. Die draaikodeerder gebruik optiese sensors wat pulse kan genereer wanneer die roterende enkodeerder draai. Die toepassing van die draaikodeerder gewoonlik as 'n