Sisukord:
- Samm: materjalide arve
- 2. samm: skeem ja Cicruit
- 3. samm: kood
- 4. samm: väärtuste korrigeerimine
- Samm: projekt pärast kriitikat ja ülevaadet
- 6. samm: pärast mõningaid müügitöid
- 7. samm: tõehetk
- 8. samm: lõpp
Video: Üks pin 4 × 4 klaviatuur: 10 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Iga kord, kui näen klahvistikku, on sellel palju nööpnõelu, see on teie Arduino nööpnõelte suur raiskamine, nii et kas me saame juhtida ühe ja ainult ühe nööpnõelaga klaviatuuri?. Vastus on siin.
Samm: materjalide arve
Riistvara:
01 Arduino UNO
02 Leivalauad
01 LCD koos I2C -ga
16 Vajutage nuppe
04 takistid 1,5 kΩ
04 takistid 620 Ω
04 takistid 220 Ω
08 takistid 100 Ω
01 takisti 1 kΩ
07 Jumper juhtmed
Tarkvara:
Arduino IDE on teie arvutisse installitud
2. samm: skeem ja Cicruit
Kogu idee seisneb selles, et meil on 4*4 maatriks nuppudega, mis on vertikaalselt ühendatud maapinnaga parema juhtme ja horisontaalselt teise juhtme (nupujuhtme) ja takistitega 1,5 kΩ, 620Ω, 220Ω ja 100Ω. 4 rida on ühendatud nelja 100Ω takistiga, nagu on näidatud skemaatiliselt.
Iga kord, kui vajutate nuppu, sulgete vooluahela ja vool läbib erineva tee ja erineva takisti ahela, seetõttu saab tihvt A0 iga nupu jaoks erineva analoogi. Kõik, mida praegu vajate, on kodeerimine.
3. samm: kood
#kaasake
#kaasake
LiquidCrystal_I2C LCD (0x3f, 20, 4);
int Nupp = A0;
int lugemisväärtus;
tühine seadistus ()
{
Seriaalne algus (9600);
lcd.begin ();
pinMode (nupp, INPUT);
lcd.taustavalgus ();
lcd.print ("Tere maailm");
viivitus (2000);
lcd.clear ();
lcd.print ("Üks pin 4*4 klahvistik");
viivitus (2000); }
tühine tsükkel ()
{
readvalue = analogRead (Button);
Serial.println (lugemisväärtus);
if (readvalue == 852) {lcd.clear (); lcd.print ("A");}
else {if (readvalue == 763) {lcd.clear (); lcd.print ("B");}
else {if (readvalue == 685) {lcd.clear (); lcd.print ("C");}
else {if (readvalue == 965) {lcd.clear (); lcd.print ("D");}
else {if (readvalue == 565) {lcd.clear (); lcd.print ("9");}
else {if (readvalue == 614) {lcd.clear (); lcd.print ("6");}
else {if (readvalue == 360) {lcd.clear (); lcd.print ("3");}
else {if (readvalue == 335) {lcd.clear (); lcd.print ("#");}
else {if (readvalue == 396) {lcd.clear (); lcd.print ("8");}
else {if (readvalue == 349) {lcd.clear (); lcd.print ("5");}
else {if (readvalue == 235) {lcd.clear (); lcd.print ("2");}
else {if (readvalue == 279) {lcd.clear (); lcd.print ("0");}
else {if (readvalue == 452) {lcd.clear (); lcd.print ("7");}
else {if (readvalue == 271) {lcd.clear (); lcd.print ("4");}
else {if (readvalue == 170) {lcd.clear (); lcd.print ("1");}
else {if (readvalue == 92) {lcd.clear (); lcd.print ("*");} else {}}}}}}}}}}}}}}}}}
4. samm: väärtuste korrigeerimine
Seeriamonitori avamisel näitab see väärtust 1023, kui vajutate nuppu, annab see teile uue näidu, peate need väärtused võtma ja koodi muutma
Samm: projekt pärast kriitikat ja ülevaadet
Pole kahtlust, et oleme kõik siin, et õppida ja jagada oma teadmisi, tänu mõnedele kogukonna inimeste kommentaaridele, mis olid väga kasulikud, otsustasin oma projekti veidi kohandada ja täiustada:
Riistvara:
Otsustasin joota kõik PCB komponendid, et vältida leivaplaatide halva ühenduse probleemi.
Kood:
Sõber soovitas mul kasutada tarkvara väljalülitamist ja see on lihtsalt tsükkel (näiteks "jaoks" silmus), et programm võtaks lugemise valimiseks aega, see tähendab, et see teeb palju lugemist (minu eksamil 500) ainult viimane.
jaoks (i = 1; i <= 500; i ++) {// võtke ainult 500. analoog
value = analogRead (Button);} // see aitab veidi aega võtta ja vältida halbu näitu
Teine sõber tänu temale soovitas mul võrrelda "lugemisväärtust" väärtuste vahemikuga, mitte ühega, sest "lugemisväärtus" võtab sama nupu jaoks palju väärtusi. Näiteks "A" näitab: 849, 850, 851 852, 853, 854, 855, seega on see vahemik 7 väärtust: lävi (852) ja 3 väärtust vasakule ja paremale. siin peame võrdlema "lugemisväärtuse" ja "852" erinevuse absoluutväärtust väärtusega "3".
if (abs (readvalue-852) <= 8) {lcd.clear (); lcd.print ("A");}
6. samm: pärast mõningaid müügitöid
7. samm: tõehetk
Nagu näete, ajab programm mõnikord nuppe segamini, kuid töötab endiselt, pole teoorias vooluahelal viga, kuid kood vajab rohkem kalibreerimist.
8. samm: lõpp
Loodan, et teile meeldib see projekt ja proovite seda teha, võib -olla läheb teil paremini kui mul.
Küsige minult küsimusi, jätke kommentaarid ja ärge unustage minu poolt hääletada, kui see teile meeldib.
Soovitan:
ÜKS KASUTAJA OGUR DE GÁS MQ-7: 5 sammu
COMO USAR O SENSOR DE GÁS MQ-7: Õpetus MQ-7 anduri kasutamiseks MQ-7 detektoril ja Monóxido de Carbono esitusel (CO)
Kiirklahvide klaviatuur kohandatud profiilidega: 14 sammu (piltidega)
Kiirklahvide klaviatuur kohandatud profiilidega: loodan, et teil läheb selle pandeemia ajal hästi. Ole ohutu. Ole tugev. #COVID19 Olles tööstusdisainer, pean mul olema juurdepääs rohkem kui 7-8 tarkvarale, mis sisaldavad iga päev Solidworksit, Photoshopi, Illustratorit, Keyshotit, Indesigni jne ja jah, paar g
EngineersBuddy traadita klaviatuur, hiir ja makrosalvesti: 4 sammu
EngineersBuddy traadita klaviatuur, hiir ja makrosalvesti: see juhend annab selgituse, kuidas kasutada inseneride sõpra, klaviatuuri, hiirt ja makrosalvesti. See Androidi rakendus töötab koos Enginners Buddy klaviatuuri ja hiireemulaatori riistvara mooduliga. Moodul töötab kõigi HID -arvutitega
Sisse lülitatud riiviahel koos UC -ga. Üks nupp. Üks tihvt. Diskreetne komponent: 5 sammu
Sisse lülitatud riiviahel koos UC -ga. Üks nupp. Üks tihvt. Diskreetne komponent: Tere kõigile, otsisin võrgust sisse/välja lülitust. Kõik, mis ma leidsin, ei olnud see, mida ma otsisin. Ma rääkisin iseendaga, selleks on tingimata võimalus. Seda ma vajasin.-Ainult üks nupp, mida saab sisse ja välja lülitada
Kiire ja määrdunud klaviatuur (tühi klaviatuur): 3 sammu
Kiire ja määrdunud klaviatuur (tühi klaviatuur): Das -klaviatuur on kõige populaarsema klaviatuuri nimi, millel pole klahvidel kirju (tühi klaviatuur). Das -klaviatuuri hind on 89,95 dollarit. See juhend annab teile juhiseid, kui teete selle ise mõne vana klaviatuuri abil, mis teil on