Turinys:
- 1 žingsnis: medžiagų sąrašas
- 2 žingsnis: Schema ir „Cicruit“
- 3 žingsnis: Kodas
- 4 žingsnis: vertybių korekcija
- 5 žingsnis: projektas po kritikos ir peržiūros
- 6 žingsnis: Po tam tikrų pardavimo darbų
- 7 žingsnis: Tiesos akimirka
- 8 žingsnis: pabaiga
Video: Vieno kaiščio 4 × 4 klaviatūra: 10 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Kiekvieną kartą, kai matau klaviatūrą, yra daug kaiščių, tai yra didelė jūsų „Arduino“kaiščių švaistymas, todėl ar galime paleisti klaviatūrą su vienu ir tik vienu kaiščiu?. Atsakymas čia.
1 žingsnis: medžiagų sąrašas
Techninė įranga:
01 „Arduino UNO“
02 Duonos lentos
01 LCD su I2C
16 Mygtukai
04 rezistoriai 1,5 kΩ
04 rezistoriai 620 Ω
04 rezistoriai 220 Ω
08 rezistoriai 100 Ω
01 rezistorius 1 kΩ
07 Jumperiniai laidai
Programinė įranga:
„Arduino IDE“įdiegtas jūsų kompiuteryje
2 žingsnis: Schema ir „Cicruit“
Visa idėja yra ta, kad mes turime 4*4 matricą mygtukų, prijungtų vertikaliai prie žemės tinkamu laidu, o horizontaliai - kitu laidu (mygtuko laidas) ir 1,5 kΩ, 620Ω, 220Ω ir 100Ω rezistorius. 4 eilutės yra sujungtos keturiais 100Ω rezistoriais, kaip parodyta schemoje.
Kiekvieną kartą, kai paspaudžiate mygtuką, uždarote grandinę, o srovė eina skirtingu keliu ir skirtinga rezistorių grandine, todėl A0 kaištis gauna skirtingą analoginį nuskaitymą kiekvienam mygtuko paspaudimui. Viskas, ko jums dabar reikia, yra kodavimas.
3 žingsnis: Kodas
#įtraukti
#įtraukti
LiquidCrystal_I2C LCD (0x3f, 20, 4);
int mygtukas = A0;
int readvalue;
negaliojanti sąranka ()
{
Serial.begin (9600);
lcd.begin ();
pinMode (mygtukas, Įvestis);
lcd.backlight ();
lcd.print („Labas pasaulis“);
vėlavimas (2000 m.);
lcd.clear ();
lcd.print ("Vieno kaiščio 4*4 klaviatūra");
vėlavimas (2000 m.); }
tuštumos kilpa ()
{
readvalue = analogRead (mygtukas);
Serial.println (skaitymo vertė);
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 žingsnis: vertybių korekcija
Kai atidarysite nuoseklųjį matuoklį, jis parodys 1023 vertę, jei paspausite mygtuką, jums bus dar kartą nuskaityta, turite paimti šias vertes ir atlikti tam tikrus kodo pakeitimus
5 žingsnis: projektas po kritikos ir peržiūros
Nėra jokių abejonių, kad visi esame čia, norėdami pasimokyti ir pasidalyti savo žiniomis, dėka kai kurių bendruomenės žmonių komentarų, kurie buvo labai naudingi, nusprendžiau šiek tiek pakoreguoti ir patobulinti savo projektą:
Techninė įranga:
Aš nusprendžiau lituoti visus PCB komponentus, kad išvengčiau blogo ryšio su maitinimo plokštėmis problemos.
Kodas:
Draugas man patarė naudoti programinės įrangos išjungimą ir tai tik ciklas (pvz., „Už“ciklą), kad programa užtruktų, kol išsirinks skaitymą, reiškia, kad ji daug skaito (500 mano egzamine) tik paskutinis.
(i = 1; i <= 500; i ++) {// imk tik 500 -ąjį analoginį skaitymą
value = analogRead (Button);} // tai padeda šiek tiek užtrukti ir išvengti blogų rodmenų
Kitas draugas jo dėka patarė man palyginti „readvalue“su daugybe reikšmių, o ne viena, nes „readvalue“užima daug reikšmių tam pačiam mygtukui. Pavyzdžiui, „A“rodo: 849, 850, 851 852, 853, 854, 855, taigi tai yra 7 reikšmių diapazonas: slenkstis (852) ir 3 vertės kairėje ir dešinėje. čia turime palyginti absoliučią skirtumo tarp „skaitymo vertės“ir „852“vertę su „3“.
if (abs (readvalue-852) <= 8) {lcd.clear (); lcd.print ("A");}
6 žingsnis: Po tam tikrų pardavimo darbų
7 žingsnis: Tiesos akimirka
Kaip matote, programa kartais painioja mygtukus, tačiau ji vis tiek veikia, teoriškai grandinėje nėra nieko blogo, tačiau kodą reikia daugiau kalibruoti.
8 žingsnis: pabaiga
Tikiuosi, kad jums patinka šis projektas ir bandysite tai padaryti, galbūt jums seksis geriau nei man.
Paklauskite manęs, jei turite klausimų, palikite komentarus ir nepamirškite balsuoti už mane, jei jums tai patinka.
Rekomenduojamas:
Dviejų žaidėjų vieno LED juostų žaidimai su taškų lenta: 10 žingsnių
Dviejų žaidėjų vieno LED juostelių žaidimai su taškų lenta: Pirmiausia melskitės dievo už visas pasaulio tautas, kad Dievas tik šiuo metu galėtų mums padėti ir suteikti ramybę. Visi esame užrakinti ir niekur nedingsime. Aš neturiu daugiau darbų, todėl pradėk mokytis „python“internete ir negalėsiu galvoti
„ETextile“multimetro kaiščio zondas: 10 žingsnių (su nuotraukomis)
„ETextile“multimetro kaiščio zondas: „Pin Probe“, paskelbtas „eTextile Swatchbook 2017“Zondas susideda iš kaiščio, kuris laikinai, bet tvirtai liečiasi su tekstilės medžiagomis, nepakenkdamas
Vieno kaiščio klaviatūros „Raspberry Pi“naudojimo vadovas: 9 žingsniai
Vieno kaiščio klaviatūros „Raspberry Pi“naudojimo vadovas: ATSAKYMAS: TAI NAUDOJIMO VADOVAS ATVIRAMAM ŠALTINIAM PRODUKTUI: VIENAM PIN kodui. TAI NĖRA DIY PROJEKTAS. JEI NORITE PADARYTI LENTAS SAVE, EAGLE FILES GALIMA RASTI PAMOKOS PABAIGOJE. Kas yra vieno kaiščio klaviatūra? Vieno kaiščio klaviatūra
Kelių mygtukų prijungimas prie vieno „Arduino“kaiščio: 4 veiksmai
Kelių mygtukų prijungimas prie vieno „Arduino“kaiščio: Sveiki visi, kai jūsų „Arduino“projektuose užaugo mirksintys šviesos diodai, jums gali prireikti papildomų kaiščių. Parodysiu triuką, kurį galite naudoti ten, kur galite turėti kelis mygtukus, kurie visi yra prijungti prie to paties analoginio kaiščio
RGB vieno mygtuko USB klaviatūra: 6 žingsniai (su paveikslėliais)
RGB vieno mygtuko USB klaviatūra: ar kada nors manėte, kad reikia turėti mažą, tačiau funkcionalią, RGB foninio apšvietimo klaviatūrą, ne didesnę nei vieno klavišo dydis? Ne? Kam tai rūpi, vis tiek pasigamink! Ši pamoka padės jums atlikti veiksmus, kurių reikia norint padaryti savo, šiek tiek nenaudingą