Obsah:
- Krok 1: Kusovník
- Krok 2: Schéma a Cicruit
- Krok 3: Kód
- Krok 4: Oprava hodnot
- Krok 5: Projekt po kritice a revizi
- Krok 6: Po nějaké pájecí práci
- Krok 7: Okamžik pravdy
- Krok 8: Konec
Video: Klávesnice s jedním pinem 4 × 4: 10 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Pokaždé, když vidím klávesnici, přichází se spoustou pinů, je to velká ztráta vašich pinů Arduino, můžeme tedy spustit klávesnici s jediným a jediným pinem? Odpověď je zde.
Krok 1: Kusovník
Hardware:
01 Arduino UNO
02 prkénka
01 LCD s I2C
16 Tlačítka
04 odpory 1,5 kΩ
04 odpory 620 Ω
04 odpory 220 Ω
08 odpory 100 Ω
01 odpor 1 kΩ
07 Propojovací vodiče
Software:
Arduino IDE nainstalované ve vašem PC
Krok 2: Schéma a Cicruit
Celá myšlenka je, že máme matici 4*4 tlačítek připojenou svisle k zemi pravým vodičem a horizontálně druhým vodičem (vodičem tlačítka) a odpory 1,5 kΩ, 620Ω, 220Ω a 100Ω, konce 4 řady jsou spojeny čtyřmi odpory 100Ω, jak ukazuje schéma.
Pokaždé, když stisknete tlačítko, zavřete obvod a proud prochází jinou cestou a jiným řetězcem odporů, proto pin A0 dostává pro každé tlačítko jiné analogové čtení. Vše, co nyní potřebujete, je kódování.
Krok 3: Kód
#zahrnout
#zahrnout
LiquidCrystal_I2C lcd (0x3f, 20, 4);
int Tlačítko = A0;
int hodnota čtení;
neplatné nastavení ()
{
Serial.begin (9600);
lcd.begin ();
pinMode (tlačítko, VSTUP);
lcd.backlight ();
lcd.print („Hello World“);
zpoždění (2000);
lcd.clear ();
lcd.print („klávesnice s jedním pinem 4*4“);
zpoždění (2000); }
prázdná smyčka ()
{
readvalue = analogRead (Tlačítko);
Serial.println (hodnota čtení);
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 hodnot
Když otevřete sériový monitor, zobrazí hodnotu 1023, pokud stisknete tlačítko, poskytne vám další čtení, musíte tyto hodnoty vzít a provést nějaké změny v kódu
Krok 5: Projekt po kritice a revizi
Není pochyb o tom, že jsme všichni tady, abychom se učili a sdíleli své znalosti, díky několika komentářům, které zanechali někteří lidé z komunity a které byly velmi užitečné, jsem se rozhodl provést na svém projektu několik úprav a vylepšení:
Hardware:
Rozhodl jsem se pájet všechny součásti na desce plošných spojů, abych se vyhnul problému se špatným spojením v prkénkách.
Kód:
Přítel mi poradil, abych použil softwarové odskakování, a je to jen smyčka (například smyčka „pro“), aby programu nějaký čas trvalo, než si vybral čtení, což znamená, že udělá hodně přečtení (500 v mé zkoušce), ale zabere jen ten poslední.
for (i = 1; i <= 500; i ++) {// vezměte pouze 500. analogový vlákno
value = analogRead (Button);} // to pomůže zabrat nějaký čas a vyhnout se špatným hodnotám
Další jeho přítel mi doporučil porovnat „hodnotu čtení“s řadou hodnot, nikoli s jednou, protože „hodnota pro čtení“pro stejné tlačítko vyžaduje mnoho hodnot. Například „A“udává hodnotu: 849, 850, 851 852, 853, 854, 855, takže je to rozsah 7 hodnot: práh (852) a 3 hodnoty vlevo a vpravo. musíme zde porovnat absolutní hodnotu rozdílu mezi „hodnotou čtení“a „852“na hodnotu „3“.
if (abs (readvalue-852) <= 8) {lcd.clear (); lcd.print ("A");}
Krok 6: Po nějaké pájecí práci
Krok 7: Okamžik pravdy
Jak vidíte, program někdy zaměňuje tlačítka, ale stále funguje, teoreticky na obvodu není nic špatného, ale kód vyžaduje další kalibraci.
Krok 8: Konec
Doufám, že se vám tento projekt líbí a pokusíte se ho udělat, možná se vám bude dařit lépe než mně.
Zeptejte se mě, pokud máte dotazy, zanechte komentáře a nezapomeňte pro mě hlasovat, pokud se vám to líbí.
Doporučuje:
Vkládání klávesnice/automatické zadávání hesla jedním kliknutím!: 4 kroky (s obrázky)
Vkládání klávesnice/automatické zadávání hesla jedním kliknutím !: Hesla jsou obtížná … a zapamatování bezpečného hesla je ještě těžší! Kromě toho, pokud máte spolu, spletité heslo, bude jeho psaní nějakou dobu trvat. Ale nebojte se, moji přátelé, mám na to řešení! Vytvořil jsem malý stroj pro automatické psaní, který bude
Klávesnice USB s jedním tlačítkem RGB: 6 kroků (s obrázky)
Klávesnice USB s jedním tlačítkem RGB: Cítili jste někdy potřebu mít malou, ale funkční klávesnici s podsvícením RGB, která není větší než velikost jediné klávesy? Ne? Koho to zajímá, udělejte si jedno! Tento návod vás provede kroky, které potřebujete k tomu, abyste si vytvořili svůj vlastní, trochu zbytečný
Jak opravit problém s pinem 3,3 V na discích White Label vyhozených z jednotek Western Digital 8TB Easystore: 6 kroků
Jak opravit problém s pinem 3,3 V na discích White Label vyhozených z disků Western Digital 8TB Easystore: Pokud vám tento návod připadá užitečný, zvažte prosím přihlášení k odběru mého kanálu YouTube pro nadcházející DIY návody týkající se technologie. Děkuji
Čištění hliníkové klávesnice Apple . nebo jakékoli jiné soft-touch klávesnice: 5 kroků
Čištění hliníkové klávesnice Apple …. nebo jakékoli jiné klávesnice s měkkým dotykem: Jakkoli se vy nebo já můžeme pokusit udržet naše hliníkové klávesnice Apple, začnou být po roce špinavé. Tento návod vám pomůže vyčistit ho. Buďte opatrní, protože nejsem zodpovědný, pokud se vám při tom rozbije klávesnice …. SUCKS F
Jak číst mnoho přepínačů jedním pinem MCU: 4 kroky
Jak přečíst mnoho přepínačů jedním pinem MCU: Už jste se někdy vyhrabali projektem (projekty) a projekt stále roste a roste, zatímco do něj přidáváte další věci (říkáme tomu Feaping Creaturism)? Na nedávném projektu jsem stavěl měřič frekvence a přidal pětifunkční