Tartalomjegyzék:
- 1. lépés: Anyagjegyzék
- 2. lépés: Séma és Cicruit
- 3. lépés: A kód
- 4. lépés: Értékek korrekciója
- 5. lépés: Projekt a kritika és felülvizsgálat után
- 6. lépés: Néhány eladási munka után
- 7. lépés: Az igazság pillanata
- 8. lépés: A vége
Videó: Egy pin 4 × 4 billentyűzet: 10 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Minden alkalommal, amikor meglátok egy billentyűzetet, sok tűvel érkezik, ez nagy pazarlás az Arduino csapjainál, tehát futtathatunk egy és egyetlen tűvel rendelkező billentyűzetet?. A válasz itt van.
1. lépés: Anyagjegyzék
Hardver:
01 Arduino UNO
02 Kenyeretábla
01 LCD I2C -vel
16 Nyomógombok
04 ellenállások 1,5 kΩ
04 ellenállás 620 Ω
04 ellenállás 220 Ω
08 ellenállás 100 Ω
01 ellenállás 1 kΩ
07 Jumper vezetékek
Szoftver:
Arduino IDE telepítve van a számítógépre
2. lépés: Séma és Cicruit
Az összes elképzelés az, hogy van 4*4 mátrix nyomógombunk, amelyek függőlegesen kapcsolódnak a földhöz a megfelelő vezetékkel, vízszintesen pedig a másik vezetékkel (a gombvezetékkel) és az 1,5 kΩ, 620Ω, 220Ω és 100Ω ellenállásokkal. a 4 sort négy, 100Ω -os ellenállás köti össze, az ábra szerint.
Minden alkalommal, amikor megnyom egy gombot, bezárja az áramkört, és az áram más útvonalon és különböző ellenállásláncokon megy keresztül, ezért az A0 érintkező minden nyomógombhoz más analóg értéket kap. Most már csak kódolásra van szüksége.
3. lépés: A kód
#befoglalni
#befoglalni
LiquidCrystal_I2C LCD (0x3f, 20, 4);
int Gomb = A0;
int readvalue;
üres beállítás ()
{
Sorozat.kezdet (9600);
lcd.begin ();
pinMode (gomb, INPUT);
lcd.backlight ();
lcd.print ("Hello World");
késleltetés (2000);
lcd.clear ();
lcd.print ("Egy pin 4*4 billentyűzet");
késleltetés (2000); }
üres hurok ()
{
readvalue = analógRead (gomb);
Serial.println (olvasási érték);
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. lépés: Értékek korrekciója
Amikor megnyitja a soros monitort, az 1023 értéket mutat, ha megnyom egy gombot, akkor újabb leolvasást ad, és meg kell adnia ezeket az értékeket, és módosítania kell a kódot
5. lépés: Projekt a kritika és felülvizsgálat után
Kétségtelen, hogy mindannyian azért vagyunk itt, hogy tanuljunk és megoszthassuk tudásunkat. A közösség néhány tagja által tett, nagyon hasznos megjegyzéseknek köszönhetően úgy döntöttem, hogy módosítok és javítok a projektemen:
A hardver:
Úgy döntöttem, hogy forrasztom az összes komponenst egy NYÁK -ba, hogy elkerüljem a rossz kapcsolatot a kenyértáblákban.
A kód:
Egy barátom azt tanácsolta, hogy használjak szoftveres visszalépést, és ez csak egy ciklus (például "for" ciklus), hogy a program eltartson egy kis idővel az olvasás kiválasztásához, ez azt jelenti, hogy sok olvasást végez (500 a vizsgámban) csak az utolsó.
mert (i = 1; i <= 500; i ++) {// csak az 500. analóg olvasatot vegye fel
value = analogRead (Button);} // ez segít eltartani egy ideig, és elkerülni a rossz leolvasásokat
Egy másik barátja hála neki azt tanácsolta, hogy hasonlítsam össze a "readvalue" értéket egy sor értékkel, mert a "readvalue" sok értéket vesz igénybe ugyanazon nyomógombhoz. Az "A" például a következő értékeket adja: 849, 850, 851 852, 853, 854, 855, tehát 7 értéktartomány: küszöbérték (852) és 3 érték balra és jobbra. Itt csak a "readvalue" és a "852" közötti különbség abszolút értékét kell összehasonlítanunk a "3" értékkel.
if (abs (readvalue-852) <= 8) {lcd.clear (); lcd.print ("A");}
6. lépés: Néhány eladási munka után
7. lépés: Az igazság pillanata
Amint láthatja, a program néha megzavarja a gombokat, de még mindig működik, elméletileg nincs semmi baj az áramkörrel, de a kódnak több kalibrálásra van szüksége.
8. lépés: A vége
Remélem tetszeni fog ez a projekt, és megpróbáljátok megvalósítani, lehet, hogy jobban fogjátok csinálni, mint én.
Kérdezzen tőlem, ha kérdése van, hagyjon megjegyzést, és ne felejtse el szavazni rám, ha tetszik.
Ajánlott:
Egy Raspberry Pi NAS, amely valóban úgy néz ki, mint egy NAS: 13 lépés (képekkel)
Egy Raspberry Pi NAS, ami tényleg úgy néz ki, mint egy NAS: Miért egy Raspberry Pi NAS? Nos, én egy gyönyörű, de helytakarékos Raspberry Pi NAS -t kerestem az internetről, és nem találtam semmit. Találtam néhány NAS -konstrukciót, egy Raspberry Pi -t fa alapra ragasztva, de nem ezt akarom. Azt akarom
Egy tűs billentyűzet Raspberry Pi használati útmutató: 9 lépés
Egy tűs billentyűzet Raspberry Pi használati útmutató: NYILATKOZAT: EZ HASZNÁLATI ÚTMUTATÓ A NYITOTT FORRÁS TERMÉKHEZ: AZ EGY PIN KULCS. EZ NEM DIY PROJEKT. HA A TÁBLÁZATOKAT MAGA MAGA SZERETNI KÉRNI, az EAGLE -FÁJLOK AZ ÚTMUTATÓ VÉGÉN TALÁLHATÓK. Mi az egytűs billentyűzet? Egy tűs billentyűzet
Egy régi mechanikus billentyűzet tisztítása: 5 lépés (képekkel)
Tisztítsa meg a régi mechanikus billentyűzetet: A mechanikus billentyűzetek régebben nagyon elterjedtek és népszerűek voltak a kilencvenes években és korábban, és sok ember számára az általuk adott érzés és hang jobban hasonlított az írógépekhez, amelyeket korábban használtak. Azóta a mechanikus billentyűzet
Gyors és piszkos billentyűzet (üres billentyűzet): 3 lépés
Gyors és piszkos Das billentyűzet (üres billentyűzet): A Das billentyűzet a legnépszerűbb billentyűzet neve, amelyen nincs felirat a billentyűkön (üres billentyűzet). A Das billentyűzet ára 89,95 dollár. Ez az útmutató segít eligazítani, bár saját kezűleg készíthet bármilyen régi billentyűzetet, amellyel hever
Az Apple alumínium billentyűzet tisztítása . vagy bármely más puha tapintású billentyűzet: 5 lépés
Az Apple alumínium billentyűzet tisztítása …. vagy bármely más lágy érintésű billentyűzet: Bármilyen tiszta vagy, vagy megpróbáljuk megtartani alumínium alma billentyűzetünket, körülbelül egy év múlva mocskosak lesznek. Ez az utasítás segít tisztítani. Legyen óvatos, mert nem vagyok felelős azért, ha a billentyűzet eltörik közben