Sadržaj:
- Korak 1: Opis materijala
- Korak 2: Shema i Cicruit
- Korak 3: Kôd
- Korak 4: Ispravljanje vrijednosti
- Korak 5: Projekat nakon kritike i pregleda
- Korak 6: Nakon malo lemljenja
- Korak 7: Trenutak istine
- Korak 8: Kraj
Video: Jedan pin 4 × 4 tastatura: 10 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Svaki put kad vidim tipkovnicu, dolazi s puno pinova, to je veliki gubitak vaših Arduino pinova, pa možemo li pokrenuti tipkovnicu s jednim i samo jednim pinom?. Odgovor je ovdje.
Korak 1: Opis materijala
Hardver:
01 Arduino UNO
02 Oglasne ploče
01 LCD sa I2C
16 Tasteri
04 otpornika 1,5 kΩ
04 otpornika 620 Ω
04 otpornika 220 Ω
08 otpornika 100 Ω
01 otpornik 1 kΩ
07 Kratkospojne žice
Softver:
Arduino IDE instaliran na vašem računaru
Korak 2: Shema i Cicruit
Ideja je da imamo 4*4 matrice gumba pritisnutih okomito na uzemljenje povezanim desnim kabelom, a vodoravno drugim vodičem (vodičem dugmeta) i otpornicima od 1,5 kΩ, 620Ω, 220Ω i 100Ω, krajevi 4 reda su povezana sa četiri otpornika od 100Ω kako je prikazano na shemi.
Svaki put kada pritisnete dugme, zatvarate krug i struja prolazi kroz drugu putanju i različite lance otpornika, zato pin A0 prima različito analogno očitavanje za svako dugme. Sve što vam sada treba je kodiranje.
Korak 3: Kôd
#include
#include
LiquidCrystal_I2C LCD (0x3f, 20, 4);
int Button = A0;
int readvalue;
void setup ()
{
Serial.begin (9600);
lcd.begin ();
pinMode (dugme, INPUT);
lcd.backlight ();
lcd.print ("Hello World");
kašnjenje (2000);
lcd.clear ();
lcd.print ("Jedan pin 4*4 tastatura");
kašnjenje (2000); }
void loop ()
{
readvalue = analogRead (dugme);
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 {}}}}}}}}}}}}}}}}}
Korak 4: Ispravljanje vrijednosti
Kada otvorite serijski monitor, on će pokazati vrijednost 1023, ako pritisnete gumb, to će vam dati još jedno očitanje, morate uzeti te vrijednosti i unijeti neke promjene u kôd
Korak 5: Projekat nakon kritike i pregleda
Nema sumnje da smo svi ovdje da učimo i dijelimo svoje znanje, zahvaljujući nekim komentarima koje su ostavili neki ljudi iz zajednice koji su mi bili od velike pomoći, odlučio sam unijeti neke prilagodbe i poboljšanja u svoj projekt:
Hardver:
Odlučio sam lemiti sve komponente na PCB -u kako bih izbjegao problem loše veze na matičnim pločama.
Kod:
Prijatelj mi je savjetovao da iskoristim softver za uklanjanje softvera i to je samo petlja (na primjer "za" petlju) kako bi programu bilo potrebno neko vrijeme da odabere čitanje, znači da čini puno čitanja (500 u mom ispitu), ali traje samo poslednji.
for (i = 1; i <= 500; i ++) {// uzeti samo 500. analogno čitanje
value = analogRead (Button);} // to pomaže da se odvoji neko vrijeme i izbjegnu loša očitanja
Drugi prijatelj, zahvaljujući njemu, savjetovao mi je da uporedim "readvalue" s nizom vrijednosti, a ne jednom jer "readvalue" uzima puno vrijednosti za isto dugme. Na primjer "A" daje očitavanje: 849, 850, 851 852, 853, 854, 855 tako da je raspon od 7 vrijednosti: prag (852) i 3 vrijednosti lijevo i desno. ono što moramo učiniti je uporediti apsolutnu vrijednost razlike između "readvalue" i "852" sa "3".
if (abs (readvalue-852) <= 8) {lcd.clear (); lcd.print ("A");}
Korak 6: Nakon malo lemljenja
Korak 7: Trenutak istine
Kao što vidite, program ponekad zbunjuje tipke, ali i dalje radi, teoretski ništa nije u redu sa krugom, ali kod treba više kalibracije.
Korak 8: Kraj
Nadam se da vam se sviđa ovaj projekt i da ćete pokušati to učiniti, možda ćete biti bolji od mene.
Pitajte me ako imate pitanja, ostavite komentare i, ako vam se sviđa, ne zaboravite glasati za mene.
Preporučuje se:
Još jedan rotacijski prekidač koji je uglavnom štampan 3D: 7 koraka (sa slikama)
Još jedan rotacijski prekidač koji je uglavnom 3D ispisan: Prije nekog vremena stvorio sam uglavnom 3D printani rotacijski prekidač posebno za moj projekt Minivac 601 Replica. Za moj novi Think-a-Tron 2020 projekt, smatram da mi treba još jedan rotacijski prekidač. Tražim prekidač za montiranje ploče SP5T. Dodatak
Point to Point Atari Punk Console Jedan i po: 19 koraka
Point to Point Atari Punk Console Jedan i po: Šta! ?? Još jedna verzija Atari Punk konzole? Čekajte, čekajte ljudi, ova je drugačija, obećajte. Waaay 1982. godine, Forrest Mims, pisac knjižica Radio Shacka i kreacionist Mlade Zemlje (emoji sličica kolutajućih očiju) objavio je planove za svoju generaciju stepenastih tonova
Roberts RM33 Raspberry Pi Internet Radio (Još jedan…): 8 koraka (sa slikama)
Roberts RM33 Raspberry Pi Internet Radio (Još jedan…): Da, to je još jedna verzija Raspberry Pi internetskog radija, a ni moja prva. Nisam siguran zašto je ova građevina još uvijek toliko popularna, ali i dalje uživam u njoj i ne mogu reći da će mi i ova biti posljednja. Zaista mi se sviđa izgled Roberta
Povezivanje više gumba na jedan pin na Arduinu: 4 koraka
Povezivanje više gumba na jedan pin na Arduinu: Zdravo svima, Kada vaši Arduino projekti prerastu trepereće LED diode, možda ćete se trebati dodatno zaglaviti. Pokazat ću vam trik koji možete upotrijebiti tamo gdje možete imati više tipki povezanih na isti analogni pin
Brza i prljava Das tastatura (prazna tastatura): 3 koraka
Brza i prljava Das tastatura (prazna tastatura): Das tastatura je naziv najpopularnije tastature bez natpisa na tasterima (prazna tastatura). Das tastatura se prodaje po cijeni od 89,95 USD. Ovo uputstvo će vas voditi iako ćete sami napraviti bilo koju staru tastaturu koja vam leži