Sadržaj:
- Korak 1: Opis materijala
- Korak 2: Shema i Cicruit
- Korak 3: Kôd
- Korak 4: Ispravljanje vrijednosti
- Korak 5: Projekt nakon kritike i pregleda
- Korak 6: Nakon malo lemljenja
- Korak 7: Trenutak istine
- Korak 8: Kraj
Video: Jedan pin 4 × 4 tipkovnica: 10 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Svaki put kad vidim tipkovnicu, dolazi s puno pinova, veliki je 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 Tipke
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čunalu
Korak 2: Shema i Cicruit
Zamisao je u tome da imamo matricu gumba od 4*4 koja su okomito povezana s uzemljenjem desnim kabelom, a vodoravno drugim kalemom (kabel gumba) i otpornicima od 1,5 kΩ, 620Ω, 220Ω i 100Ω, a krajevi 4 reda su povezana s četiri otpornika od 100Ω kako je prikazano na shemi.
Svaki put kada pritisnete gumb, zatvarate krug i struja prolazi drugačijim putem i različitim lancem otpornika, zato pin A0 prima različito analogno očitanje za svaki gumb. Sve što vam sada treba je kodiranje.
Korak 3: Kôd
#uključi
#uključi
LiquidCrystal_I2C LCD (0x3f, 20, 4);
int Gumb = A0;
int readvalue;
void setup ()
{
Serial.begin (9600);
lcd.begin ();
pinMode (gumb, INPUT);
lcd.backlight ();
lcd.print ("Zdravo Svijete");
odgoda (2000);
lcd.clear ();
lcd.print ("Jedan pin 4*4 tipkovnica");
odgoda (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 {}}}}}}}}}}}}}}}}}
Korak 4: Ispravljanje vrijednosti
Kad otvorite serijski monitor, on će pokazati vrijednost 1023, ako pritisnete gumb, dobit ćete još jedno očitanje, morate uzeti te vrijednosti i unijeti neke promjene u kôd
Korak 5: Projekt nakon kritike i pregleda
Nema sumnje da smo svi ovdje kako bismo naučili i podijelili svoje znanje, zahvaljujući nekim komentarima nekih 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šeg povezivanja na matičnim pločama.
Kod:
Prijatelj mi je savjetovao da upotrijebim softver za otkazivanje i to je samo petlja (na primjer "za" petlju) kako bi programu trebalo neko vrijeme da odabere čitanje, što znači da čini puno čitanja (500 u mom ispitu), ali traje samo posljednji.
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 usporedim "readvalue" s rasponom vrijednosti, a ne s jednim jer "readvalue" uzima puno vrijednosti za isti gumb. Na primjer "A" daje čitanje: 849, 850, 851 852, 853, 854, 855 pa je to raspon od 7 vrijednosti: prag (852) i 3 vrijednosti lijevo i desno. ono što moramo učiniti je usporediti apsolutnu vrijednost razlike između "readvalue" i "852" s "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 gumbe, ali i dalje radi, u teoriji nema problema s krugom, ali kôd treba više kalibracije.
Korak 8: Kraj
Nadam se da vam se sviđa ovaj projekt i da ćete ga pokušati izvesti, možda ćete biti bolji od mene.
Pitajte me ako imate pitanja, ostavite komentare i ne zaboravite glasati za mene ako vam se to sviđa.
Preporučeni:
Još jedan rotacijski prekidač koji je uglavnom 3D ispisan: 7 koraka (sa slikama)
Još jedan rotacijski prekidač koji je uglavnom 3D ispisan: Prije nekog vremena stvorio sam uglavnom 3D tiskani rotacijski prekidač posebno za svoj projekt Minivac 601 Replica. Za moj novi Think-a-Tron 2020 projekt, smatram da mi treba još jedan rotacijski prekidač. Tražim prekidač za montažu na ploču SP5T. Dodatak
Point to Point Atari Punk Console Jedan i pol: 19 koraka
Point to Point Atari Punk Console Jedan i pol: Što! ?? Još jedna verzija Atari Punk konzole? Čekajte, čekajte ljudi, ova je drugačija, obećajte. Waaay davne 1982. godine, Forrest Mims, pisac knjižica Radio Shacka i kreacionist Mlade Zemlje (emoji s kolutavim očima) objavio je planove za svoju generaciju stepenastih tonova
Uključeno Sklop isključenog zasuna s UC -om. Jedan gumb. Jedan pin. Diskretna komponenta .: 5 koraka
Uključeno Sklop isključenog zasuna s UC -om. Jedan gumb. Jedan pin. Diskretna komponenta.: Pozdrav svima, tražio sam krug za uključivanje/isključivanje na internetu. Sve što sam pronašao nije ono što sam tražio. Razgovarao sam sam sa sobom, za to nužno postoji način. To mi je trebalo. -Samo jedan gumb za uključivanje i isključivanje. -Moram koristiti samo
Spajanje više gumba na jedan pin na Arduinu: 4 koraka
Povezivanje više gumba s jednim pinom na Arduinu: Pozdrav svima, kad vaši Arduino projekti prerastu trepereće LED diode, možda ćete trebati dodatne pinove. Pokazat ću vam trik koji možete upotrijebiti gdje možete imati više gumba, koji su svi povezani na isti analogni pin
Brza i prljava tipkovnica Das (prazna tipkovnica): 3 koraka
Brza i prljava Das tipkovnica (prazna tipkovnica): Dasova tipkovnica naziv je najpopularnije tipkovnice bez natpisa na tipkama (prazna tipkovnica). Das Keyboard se prodaje po cijeni od 89,95 USD. Ovo uputstvo će vas voditi iako ćete sami napraviti bilo koju staru tipkovnicu koja vam leži