Kazalo:
- 1. korak: Predmet materiala
- 2. korak: Shema in Cicruit
- 3. korak: Koda
- 4. korak: Popravek vrednosti
- 5. korak: Projekt po kritiki in pregledu
- 6. korak: Po nekaj spajkanju
- 7. korak: trenutek resnice
- 8. korak: Konec
Video: Tipkovnica z enim zatičem 4 × 4: 10 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Vsakič, ko vidim tipkovnico, ima veliko zatičev, to je velika izguba vaših zatičev Arduino, zato lahko zaženemo tipkovnico z enim in samo enim zatičem?. Odgovor je tukaj.
1. korak: Predmet materiala
Strojna oprema:
01 Arduino UNO
02 Deske
01 LCD z I2C
16 Potisni gumbi
04 upori 1,5 kΩ
04 upori 620 Ω
04 upori 220 Ω
08 upori 100 Ω
01 upor 1 kΩ
07 Mostične žice
Programska oprema:
Arduino IDE nameščen na vašem računalniku
2. korak: Shema in Cicruit
Zamisel je v tem, da imamo matriko 4*4 tipk, ki so navpično na ozemljitev povezane z desnim vodilom, vodoravno pa z drugim vodilom (vodilom gumba) in upori 1,5 kΩ, 620Ω, 220Ω in 100Ω, konci 4 vrstice so povezane s štirimi 100Ω upori, kot je prikazano na shemi.
Vsakič, ko pritisnete gumb, zaprete vezje in tok gre skozi drugo pot in različno verigo uporov, zato pin A0 prejme drugačno analogno branje za vsak gumb. Vse, kar potrebujete, je kodiranje.
3. korak: Koda
#vključi
#vključi
LiquidCrystal_I2C lcd (0x3f, 20, 4);
gumb int = A0;
int readvalue;
void setup ()
{
Serial.begin (9600);
lcd.begin ();
pinMode (gumb, VHOD);
lcd.backlight ();
lcd.print ("Pozdravljeni svet");
zamuda (2000);
lcd.clear ();
lcd.print ("Ena pin 4*4 tipkovnica");
zamuda (2000); }
void loop ()
{
readvalue = analogRead (gumb);
Serial.println (readvalue);
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. korak: Popravek vrednosti
Ko odprete serijski nadzornik, bo prikazan vrednost 1023, če pritisnete gumb, se vam bo znova odčitalo, da morate vzeti te vrednosti in narediti nekaj sprememb v kodi
5. korak: Projekt po kritiki in pregledu
Nobenega dvoma ni, da smo vsi tukaj, da se učimo in delimo svoje znanje. Zahvaljujoč komentarjem nekaterih ljudi iz skupnosti, ki so mi bili v veliko pomoč, sem se odločil, da bom v svoj projekt naredil nekaj prilagoditev in izboljšav:
Strojna oprema:
Odločil sem se, da vse komponente spajkam v tiskano vezje, da se izognem problemu slabe povezave na ploščah.
Koda:
Prijatelj mi je svetoval, naj uporabim odpravo programske opreme in je samo zanka (na primer zanka "for"), da program vzame nekaj časa, da izbere branje, kar pomeni, da veliko bere (500 v mojem izpitu), vendar traja samo zadnja.
for (i = 1; i <= 500; i ++) {// vzemite le 500. analogno branje
value = analogRead (Button);} // to pomaga, da si vzamemo nekaj časa in se izognemo slabim odčitkom
Drugi prijatelj, zahvaljujoč njemu, mi je svetoval, naj primerjam "readvalue" z nizom vrednosti, ne z enim, ker "readvalue" prevzame veliko vrednosti za isti gumb. "A" na primer daje branje: 849, 850, 851 852, 853, 854, 855, torej je obseg 7 vrednosti: prag (852) in 3 vrednosti levo in desno. kar moramo storiti tukaj, je primerjati absolutno vrednost razlike med "readvalue" in "852" do "3".
if (abs (readvalue-852) <= 8) {lcd.clear (); lcd.print ("A");}
6. korak: Po nekaj spajkanju
7. korak: trenutek resnice
Kot lahko vidite, program včasih zmede gumbe, vendar še vedno deluje, teoretično s tokokrogom ni nič narobe, vendar koda potrebuje več umerjanja.
8. korak: Konec
Upam, da vam bo ta projekt všeč in ga boste poskušali izvesti, morda vam bo uspelo bolje kot meni.
Vprašajte me, če imate vprašanja, pustite komentarje in ne pozabite glasovati zame, če vam je to všeč.
Priporočena:
Kako prebrati več analognih vrednosti z enim analognim zatičem: 6 korakov (s slikami)
Kako prebrati več analognih vrednosti z enim analognim zatičem: V tej vadnici vam bom pokazal, kako prebrati več analognih vrednosti z uporabo samo enega vhoda za analogni vhod
Arkadna tipkovnica MIDI tipkovnica: 7 korakov (s slikami)
Arkadna tipkovnica MIDI tipkovnica: To je različica 2.0 enega mojih prvih napadov na programiranje Arduino in DIY MIDI. Razvil sem svoje veščine pri oblikovanju prototipov in oblikovanju, zato sem mislil, da bo to dobra predstavitev procesa in napredovanja. Z bolj informiranim postopkom oblikovanja sem
USB tipkovnica z enim gumbom RGB: 6 korakov (s slikami)
USB tipkovnica z enim gumbom RGB: Ste kdaj čutili potrebo po majhni, a funkcionalni tipkovnici z osvetljenim ozadjem RGB, ki ni večja od velikosti ene same tipke? Ne? Koga briga, si ga vseeno naredite! Ta navodila vas bodo vodila skozi korake, ki jih potrebujete, da naredite svoje, rahlo neuporabno, na
Hitra in umazana tipkovnica Das (prazna tipkovnica): 3 koraki
Hitra in umazana tipkovnica Das (prazna tipkovnica): Dasova tipkovnica je ime najbolj priljubljene tipkovnice brez napisov na tipkah (prazna tipkovnica). Tipkovnica Das se prodaja na drobno za 89,95 USD. Ta navodila vam bodo vodila, čeprav jih naredite sami s katero koli staro tipkovnico, ki jo imate naokoli
Kako prebrati veliko stikal z enim zatičem MCU: 4 koraki
Kako prebrati veliko stikal z enim PIN -om MCU: Ali ste se kdaj odrezali pri projektu (-ih) in projekt nenehno raste in raste, hkrati pa mu dodate nekaj več (temu pravimo Feaping Creaturism)? V nedavnem projektu sem gradil merilnik frekvence in dodal pet funkcij