Përmbajtje:
- Hapi 1: Fatura e Materialeve
- Hapi 2: Skematike dhe Cicruit
- Hapi 3: Kodi
- Hapi 4: Korrigjimi i Vlerave
- Hapi 5: Projekti Pas Kritikës dhe Rishikimit
- Hapi 6: Pas disa punimeve të saldimit
- Hapi 7: Momenti i së Vërtetës
- Hapi 8: Fundi
Video: Një tastierë 4 pin 4: 4: 10 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:19
Sa herë që shoh një tastierë, ajo vjen me shumë kunja, është një humbje e madhe e kunjave tuaj Arduino, kështu që a mund të drejtojmë një tastierë me një dhe vetëm një kunj?. Përgjigja është këtu.
Hapi 1: Fatura e Materialeve
Hardware:
01 Arduino UNO
02 Tabelat e bukës
01 LCD me I2C
16 Shtypni butonat
04 rezistente 1.5 kΩ
04 rezistente 620 Ω
04 rezistente 220 Ω
08 rezistente 100 Ω
01 rezistencë 1 kΩ
07 Tela bluzë
Softuer:
Arduino IDE i instaluar në kompjuterin tuaj
Hapi 2: Skematike dhe Cicruit
E gjithë ideja është se ne kemi matricën 4*4 të butonave të shtypur të lidhur vertikalisht në Tokë nga plumbi i djathtë dhe horizontalisht nga plumbi tjetër (plumbi i butonit) dhe rezistorë prej 1.5 kΩ, 620Ω, 220Ω dhe 100Ω, skajet e 4 rreshtat janë të lidhur me katër rezistorë 100Ω siç tregohet në skemë.
Sa herë që shtypni një buton mbyllni qarkun dhe rryma kalon përmes një rruge të ndryshme dhe zinxhir të ndryshëm të rezistorëve, kjo është arsyeja pse pin A0 merr një lexim analog të ndryshëm për çdo buton. E tëra çfarë ju nevojitet tani është kodimi.
Hapi 3: Kodi
#përfshi
#përfshi
LiquidCrystal_I2C LCD (0x3f, 20, 4);
int Button = A0;
int readvalue;
void setup ()
{
Serial.filloj (9600);
lcd.filloj ();
pinMode (Butoni, HYRJA);
lcd. backlight ();
lcd.print ("Përshëndetje Botë");
vonesa (2000);
lcd.qartë ();
lcd.print ("Një pin 4*4 tastiera");
vonesa (2000); }
lak void ()
{
vlera e leximit = analogRead (Button);
Serial.println (vlera e lexuar);
nëse (vlera e leximit == 852) {lcd.qartë (); lcd.print ("A");}
tjetër {if (vlera e leximit == 763) {lcd.clear (); lcd.print ("B");}
tjetër {if (vlera e leximit == 685) {lcd.clear (); lcd.print ("C");}
tjetër {if (vlera e leximit == 965) {lcd.clear (); lcd.print ("D");}
tjetër {if (vlera e leximit == 565) {lcd.clear (); lcd.print ("9");}
tjetër {if (vlera e leximit == 614) {lcd.clear (); lcd.print ("6");}
tjetër {if (vlera e leximit == 360) {lcd.clear (); lcd.print ("3");}
tjetër {if (vlera e leximit == 335) {lcd.clear (); lcd.print ("#");}
tjetër {if (vlera e leximit == 396) {lcd.clear (); lcd.print ("8");}
tjetër {if (vlera e leximit == 349) {lcd.clear (); lcd.print ("5");}
tjetër {if (vlera e leximit == 235) {lcd.clear (); lcd.print ("2");}
tjetër {if (vlera e leximit == 279) {lcd.clear (); lcd.print ("0");}
tjetër {if (vlera e leximit == 452) {lcd.clear (); lcd.print ("7");}
tjetër {if (vlera e leximit == 271) {lcd.clear (); lcd.print ("4");}
tjetër {if (vlera e leximit == 170) {lcd.clear (); lcd.print ("1");}
else {if (readvalue == 92) {lcd.clear (); lcd.print ("*");} else {}}}}}}}}}}}}}}}}}
Hapi 4: Korrigjimi i Vlerave
Kur hapni monitorin serik do të tregojë një vlerë prej 1023, nëse shtypni një buton do t'ju japë një lexim tjetër ju duhet t'i merrni ato vlera dhe të bëni disa ndryshime në kod.
Hapi 5: Projekti Pas Kritikës dhe Rishikimit
Nuk ka dyshim se ne të gjithë jemi këtu për të mësuar dhe ndarë njohuritë tona, falë disa komenteve të lënë nga disa njerëz nga komuniteti që ishin shumë të dobishëm, vendosa të bëj disa rregullime dhe përmirësime në projektin tim:
Pajisja:
Vendosa të bashkoj të gjithë përbërësit në një PCB për të shmangur problemin e lidhjes së keqe në panelet e bukës.
Kodi:
Një mik më këshilloi të përdor një program debouncing dhe është vetëm një lak (lak "për" për shembull) për ta bërë programin të marrë pak kohë për të zgjedhur një lexim do të thotë që ai lexon shumë (500 në provimin tim) por merr vetem e fundit
për (i = 1; i <= 500; i ++) {// merrni vetëm leximin analog të 500 -të
vlera = analogRead (Butoni);} // kjo është ndihmë për të marrë pak kohë për të shmangur leximet e këqija
Një mik tjetër falë tij më këshilloi të krahasoja "vlerën e lexuar" me një sërë vlerash jo një, sepse "vlera e lexuar" merr shumë vlera për të njëjtin buton. "A" për shembull jep një lexim të: 849, 850, 851 852, 853, 854, 855 pra është një diapazon prej 7 vlerash: një prag (852) dhe 3 vlera majtas dhe djathtas. ajo që duhet të bëjmë këtu është të krahasojmë vlerën absolute të diferencës midis "vlerës së lexuar" dhe "852" me "3".
nëse (abs (vlera e leximit-852) <= 8) {lcd.qartë (); lcd.print ("A");}
Hapi 6: Pas disa punimeve të saldimit
Hapi 7: Momenti i së Vërtetës
Siç mund ta shihni, programi ndonjëherë ngatërron butonat, por ai ende punon, në teori nuk ka asgjë të keqe me qarkun, por kodi ka nevojë për më shumë kalibrim.
Hapi 8: Fundi
Shpresoj se ju pëlqen ky projekt dhe përpiqeni ta bëni atë, mbase do të bëni më mirë se unë.
Më pyesni nëse keni pyetje, lini komente dhe mos harroni të votoni për mua nëse ju pëlqen kjo.
Recommended:
Kthejeni një Commodore 64 në një tastierë Bluetooth IOS: 6 hapa (me fotografi)
Shndërroni një Commodore 64 në një tastierë Bluetooth IOS: Ky udhëzues përshkruan se si të shndërroni një kompjuter Commodore 64 në një tastierë bluetooth. Ai përfshin programimin e një mikrokontrolluesi me Arduino IDE dhe ndërtimin e një bordi qark. Furnizimet që ju nevojiten (disa janë opsionale): Commodore 64 me
Vendosni një Raspberry Pi pa një monitor të jashtëm ose tastierë: 7 hapa
Vendosni një Raspberry Pi Pa një Monitor të Jashtëm ose Tastierë: Nuk keni më nevojë për një monitor të jashtëm, tastierë dhe mi për të filluar me Raspberry Pi, ka një zgjidhje tjetër - modaliteti pa kokë
Shndërroni një tastierë nga Din në Mini-Din pa një përshtatës: 5 hapa
Shndërroni një tastierë nga Din në Mini-Din pa një Përshtatës: Pra, çfarë të bëni me dy tastiera, një hekur bashkues dhe një kohë të vogël për të humbur midis provimeve të CS. Po në lidhje me transplantin e kabllove të tastierës? Ju duhen: Dy tastierë, një e vjetër me lidhës DIN, tjetra më e re me mini lidhës DIN / PS2 Saldim hekuri
Instalimi i një tastiere USB në një laptop OLPC XO, Faza I: 8 hapa (me fotografi)
Instalimi i një tastiere USB në një laptop OLPC XO, Faza I: Nuk di për ju, por me siguri mund të dalloj silikonin nga gjëja e vërtetë. Ja se si të hiqni pelte dhe të shtrydhni një tastierë normale USB të tipit keycaps-and-springs në një laptop OLPC XO. Kjo është " faza I " - futja e tastierës në l
Kthejeni një tastierë nga një laptop i thyer në një mi PS/2: 6 hapa
Kthejeni një Trackpad nga një laptop i thyer në një mi PS/2: Një mik më dha një laptop HP Pavilion të prishur. Vetëm me pak punë, mund të hiqni tastierën dhe të lidheni me një port serial PS/2 ose 9-pin. Lidhuni me kompjuterin tuaj dhe përdorni si miun e thjeshtë, apo edhe lidhni me Arduino për një ndërfaqe unike për pajisjen tuaj