Obsah:
- Krok 1: Kusovník
- Krok 2: Schéma a cicruit
- Krok 3: Kód
- Krok 4: Oprava hodnôt
- Krok 5: Projekt po kritike a preskúmaní
- Krok 6: Po niekoľkých spájkovacích prácach
- Krok 7: Moment pravdy
- Krok 8: Koniec
Video: Klávesnica s jedným pinom 4 × 4: 10 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
Zakaždým, keď vidím klávesnicu, prichádza s veľkým počtom pinov, je to veľká strata vašich pinov Arduino, môžeme teda spustiť klávesnicu s jediným a jediným pinom?. Odpoveď je tu.
Krok 1: Kusovník
Hardvér:
01 Arduino UNO
02 Breadboards
01 LCD s I2C
16 tlačidiel
04 odpory 1,5 kΩ
04 odpory 620 Ω
04 odpory 220 Ω
08 odpory 100 Ω
01 odpor 1 kΩ
07 prepojovacie vodiče
Softvér:
Arduino IDE nainštalované vo vašom počítači
Krok 2: Schéma a cicruit
Celá myšlienka je, že máme 4*4 maticu tlačidiel pripojených zvisle k zemi pravým vodičom a horizontálne druhým vodičom (káblom tlačidla) a odpory 1,5 kΩ, 620Ω, 220Ω a 100Ω, konce 4 rady sú prepojené štyrmi odpormi 100Ω, ako je znázornené na schéme.
Zakaždým, keď stlačíte tlačidlo, zatvoríte obvod a prúd prejde inou cestou a iným reťazcom odporov, preto pin A0 dostane pre každé tlačidlo iné analógové čítanie. Všetko, čo teraz potrebujete, je kódovanie.
Krok 3: Kód
#zahrnúť
#zahrnúť
LiquidCrystal_I2C lcd (0x3f, 20, 4);
int tlačidlo = A0;
int hodnota čítania;
neplatné nastavenie ()
{
Serial.begin (9600);
lcd.begin ();
pinMode (tlačidlo, VSTUP);
lcd.backlight ();
lcd.print („Hello World“);
oneskorenie (2000);
lcd.clear ();
lcd.print („klávesnica s jedným pinom 4*4“);
oneskorenie (2000); }
prázdna slučka ()
{
readvalue = analogRead (tlačidlo);
Serial.println (hodnota čítania);
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 {}}}}
Krok 4: Oprava hodnôt
Keď otvoríte sériový monitor, zobrazí hodnotu 1023, ak stlačíte tlačidlo, zobrazí sa ďalšie čítanie, musíte tieto hodnoty zobrať a vykonať určité zmeny v kóde.
Krok 5: Projekt po kritike a preskúmaní
Nie je pochýb o tom, že sme tu všetci, aby sme sa učili a zdieľali svoje znalosti. Vďaka niektorým komentárom, ktoré niektorí ľudia z komunity veľmi pomohli, som sa rozhodol urobiť niekoľko úprav a vylepšení svojho projektu:
Hardvér:
Rozhodol som sa spájkovať všetky súčiastky na doske plošných spojov, aby som predišiel problému so zlým pripojením v doskách.
Kód:
Priateľ mi poradil, aby som použil softvér na odskakovanie softvéru a je to len slučka (napríklad slučka „pre“), aby programu nejaký čas trvalo, kým si vyberie čítanie, to znamená, že urobí veľa prečítaní (500 v mojom teste), ale zaberie to len ten posledný.
pre (i = 1; i <= 500; i ++) {// vezmite iba 500. analógové vlákno
value = analogRead (Button);} // to je čas, ktorý vám pomôže vyhnúť sa zlým hodnotám
Ďalší priateľ, ktorý mu poďakoval, mi poradil, aby som porovnal „hodnotu čítania“s rozsahom hodnôt, nie s jednou, pretože „hodnota pre čítanie“pre to isté tlačidlo vyžaduje veľa hodnôt. „A“napríklad ukazuje: 849, 850, 851 852, 853, 854, 855, takže je to rozsah 7 hodnôt: prahová hodnota (852) a 3 hodnoty vľavo a vpravo. musíme tu porovnať absolútnu hodnotu rozdielu medzi „hodnotou čítania“a „852“s „3“.
if (abs (readvalue-852) <= 8) {lcd.clear (); lcd.print ("A");}
Krok 6: Po niekoľkých spájkovacích prácach
Krok 7: Moment pravdy
Ako vidíte, program niekedy zamieňa tlačidlá, ale stále funguje, teoreticky na obvode nie je nič zlé, ale kód vyžaduje väčšiu kalibráciu.
Krok 8: Koniec
Dúfam, že sa vám tento projekt páči a pokúsite sa ho urobiť, možno sa vám bude dariť lepšie ako mne.
Ak máte otázky, opýtajte sa ma, nechajte komentáre a nezabudnite mi dať hlas, ak sa vám to páči.
Odporúča:
Hry pre dvoch hráčov s jedným LED pásom a tabuľkou skóre: 10 krokov
Hry pre dvoch hráčov s jedným LED pásom a tabuľkou skóre: V prvom rade sa modlite boha za všetky národy na celom svete, Boh je v tejto chvíli schopný pomôcť a dať nám pokoj. Všetci sme zatvorení a nemáme kam ísť. Nemám viac práce, takže začnite študovať python online a nedokážete myslieť na žiadne
Zosilňovač zvuku s jedným tranzistorom 2N3055: 8 krokov
Zosilňovač zvuku s jediným tranzistorom 2N3055: Tento zosilňovač zvuku pozostáva z jedného tranzistora (2N3005) a jednoduchého obvodu zosilňovača pozostáva z jednoduchých elektrických komponentov, ako sú odpory, kondenzátory atď. Obvod tohto zosilňovača je pomerne jednoduchý, pretože má minimálny počet
Klávesnica USB s jedným tlačidlom RGB: 6 krokov (s obrázkami)
RGB klávesnica s jedným tlačidlom USB: Cítili ste niekedy potrebu mať malú, ale funkčnú klávesnicu s podsvietením RGB, ktorá nie je väčšia ako veľkosť jedného klávesu? Nie? Koho to zaujíma, urobte si to aj tak! Tento návod vás prevedie krokmi, ktoré potrebujete k tomu, aby ste si urobili svoj vlastný, mierne zbytočný,
Klávesnica Quick and Dirty Das (prázdna klávesnica): 3 kroky
Rýchla a špinavá klávesnica Das (prázdna klávesnica): Das Keyboard je názov najobľúbenejšej klávesnice bez nápisov na klávesoch (prázdna klávesnica). Klávesnica Das sa predáva za 89,95 dolárov. Tento návod vás prevedie tým, že si ho vyrobíte sami pomocou akejkoľvek starej klávesnice, okolo ktorej ležíte
Ako čítať mnoho prepínačov jedným pinom MCU: 4 kroky
Ako prečítať mnoho prepínačov jedným pinom MCU: Odhodlali ste sa niekedy pri projekte (projektoch) a projekt stále rastie a rastie, pričom do neho pridávate ďalšie veci (hovoríme tomu Feaping Creaturism)? V nedávnom projekte som staval merač frekvencie a pridal som päť funkčných