Cuprins:
- Pasul 1: Lista materialelor
- Pasul 2: Schematic și Cicruit
- Pasul 3: Codul
- Pasul 4: corectarea valorilor
- Pasul 5: Proiect după critică și revizuire
- Pasul 6: După câteva lucrări de soldare
- Pasul 7: Momentul Adevărului
- Pasul 8: Sfârșitul
Video: Tastatură cu un pin 4 × 4: 10 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
De fiecare dată când văd o tastatură, vine cu o mulțime de pini, este o risipă mare de pini Arduino dvs., deci putem rula o tastatură cu un singur pin?. Răspunsul este aici.
Pasul 1: Lista materialelor
Hardware:
01 Arduino UNO
02 Panouri
01 LCD cu I2C
16 Butoane
04 rezistențe 1,5 kΩ
04 rezistențe 620 Ω
04 rezistențe 220 Ω
08 rezistențe 100 Ω
01 rezistor 1 kΩ
07 Sârme jumper
Software:
Arduino IDE instalat pe computer
Pasul 2: Schematic și Cicruit
Ideea este că avem matricea 4 * 4 a butoanelor conectate vertical la sol prin cablul drept și orizontal de celălalt cablu (cablul butonului) și rezistențe de 1,5 kΩ, 620Ω, 220Ω și 100Ω, capetele cele 4 rânduri sunt conectate prin patru rezistențe de 100Ω, așa cum se arată în schemă.
De fiecare dată când apăsați un buton închideți circuitul și curentul trece printr-o cale diferită și un lanț diferit de rezistențe, de aceea pinul A0 primește o citire analogică diferită pentru fiecare buton. Tot ce aveți nevoie acum este codarea.
Pasul 3: Codul
#include
#include
LiquidCrystal_I2C lcd (0x3f, 20, 4);
Buton int = A0;
int readvalue;
configurare nulă ()
{
Serial.begin (9600);
lcd.begin ();
pinMode (Buton, INPUT);
lcd.backlight ();
lcd.print („Hello World”);
întârziere (2000);
lcd.clear ();
lcd.print („Tastatură cu un pin 4 * 4”);
întârziere (2000); }
bucla nulă ()
{
readvalue = analogRead (Buton);
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 {}}}}}}}}}}}}}}}}}}
Pasul 4: corectarea valorilor
Când deschideți moniterul serial, acesta va afișa o valoare de 1023, dacă apăsați un buton, vă va da o altă lectură, trebuie să luați acele valori și să faceți unele modificări în cod
Pasul 5: Proiect după critică și revizuire
Nu există nicio îndoială că suntem cu toții aici pentru a învăța și a ne împărtăși cunoștințele, datorită unor comentarii lăsate de unii oameni din comunitate care au fost de mare ajutor, am decis să fac câteva ajustări și îmbunătățiri proiectului meu:
Hardware-ul:
Am decis să lipesc toate componentele într-un PCB pentru a evita problema conexiunii defectuoase în panourile de disc.
Codul:
Un prieten m-a sfătuit să folosesc un program de dezmembrare și este doar o buclă (de exemplu, buclă „pentru”) pentru a face programul să ia ceva timp pentru a alege o citire, înseamnă că face o mulțime de citiri (500 în examenul meu), dar doar ultima.
pentru (i = 1; i <= 500; i ++) {// luați doar a 500-a lectură analogică
value = analogRead (Buton);} // este un ajutor pentru a lua ceva timp și pentru a evita citirile proaste
Un alt prieten, mulțumit lui, m-a sfătuit să compar „readvalue” cu o serie de valori, nu una, deoarece „readvalue” ia o mulțime de valori pentru același buton. 851 852, 853, 854, 855 deci este un interval de 7 valori: un prag (852) și 3 valori la stânga și la dreapta. ceea ce trebuie să facem aici este să comparăm valoarea absolută a diferenței dintre „readvalue” și „852” cu „3”.
if (abs (readvalue-852) <= 8) {lcd.clear (); lcd.print ("A");}
Pasul 6: După câteva lucrări de soldare
Pasul 7: Momentul Adevărului
După cum puteți vedea, programul confundă uneori butoanele, dar funcționează în continuare, în teorie nu este nimic în neregulă cu circuitul, dar codul are nevoie de mai multe calibrări.
Pasul 8: Sfârșitul
Sper să vă placă acest proiect și să încercați să îl faceți, poate că veți face mai bine decât mie.
Întrebați-mă dacă aveți întrebări, lăsați comentarii și, nu uitați să mă votați dacă vă place asta.
Recomandat:
Blocare servo tastatură: 5 pași
Blocare servo tastatură: Bună ziua tuturor, sper că ați avut o zi bună. Dacă nu, sperăm că puteți derula înapoi cu un anumit spirit deschis la acest tutorial și la o muzică terapeutică. Programarea poate fi o problemă. Din fericire, acest tutorial nu este o bătaie de cap, deci este posibil să reușiți
Tastatură Arduino Joystick Extender Box și controler de sunet, folosind Deej: 8 pași
Tastatură Arduino Joystick Extender Box și Sound Controller Thing folosind Deej: De ce, de ceva vreme, doresc să adaug un mic joystick la tastatura mea pentru a controla elementele interfeței sau alte sarcini mai mici în jocuri și simulatoare (MS Flight Sim, Elite: Dangerous, Star Wars: escadrile, etc). De asemenea, pentru Elite: Dangerous, am fost
Carcasă pentru tastatura Preonic Rev 3: 4 pași
Carcasă pentru tastatura Preonic Rev 3: Am cumpărat recent un Preonic Rev. 3 de la Drop.com (plug Shameless: https://drop.com/?referer=ZER4PR) și abia aștept să-l construiesc. Din păcate, nu am făcut suficiente cercetări pentru a descoperi că PCB Rev. 3 nu se va potrivi în cazurile Rev.2 și majoritatea
Tastatură scurtă Arduino (AutoCAD): 3 pași
Tastatură scurtă Arduino (AutoCAD): Bună ziua tuturor, după ce am navigat mai multe ore și am proiectat o mulțime de lucruri interesante, am ajuns în cele din urmă să construiesc ceva. Prin urmare, pregătește-te pentru primul meu instructabil! Îmi petrec o mulțime de ore, atât din punct de vedere profesional, cât și pentru distracție, căutând aro
Tastatură rapidă și murdară Das (tastatură goală): 3 pași
Tastatură Das rapidă și murdară (tastatură goală): o tastatură Das este numele celei mai populare tastaturi fără inscripții pe taste (tastatură goală). Tastatura Das se vinde cu 89,95 USD. Acest instructiv vă va ghida, deși creați unul singur cu orice tastatură veche pe care o aveți în jur