Tento návod je súčasťou: Klávesnice
Všetky videá o klávesnici sú uvedené tu.
Kód Arduina a video pre štvortlačidlovú klávesnicu
V tomto návode sa naučíme, ako používať štvorklávesovú klávesnicu s Arduinom. Tento projekt je užitočný najmä pre aplikácie, kde potrebujete viac tlačidiel, ale chcete minimalizovať počet použitých vodičov. Zapojením klávesnice špecifickým spôsobom môžeme dosiahnuť funkčné zapojenie len s piatimi vodičmi namiesto ôsmich.

Štvorklávesová klávesnica zjednodušuje proces zapojenia, pretože má spoločné pripojenie, ktoré znižuje celkový počet potrebných vodičov. Každý kláves je pripojený k Arduinu cez určené piny, čo umožňuje jednoduchú interakciu a ovládanie. Táto príručka pokryje zapojenie, kód a očakávané správanie klávesnice, aby ste mohli projekt úspešne zopakovať (vo videu o 02:30).
Vysvetlenie hardvéru
Hlavné komponenty tohto projektu zahŕňajú štvorklávesovú klávesnicu a dosku Arduino. Klávesnica obsahuje štyri tlačidlá a každé tlačidlo sa pripája k Arduinu cez dva vodiče – jeden spoločný vodič a jeden vyhradený vodič pre každé tlačidlo. Toto zapojenie umožňuje priame pripojenia a zároveň minimalizuje neporiadok.
Arduino interpretuje stlačenia tlačidiel pomocou digitálnych vstupov, pričom sa spolieha na interné pull-up rezistory, aby zabezpečilo stabilné čítanie. Keď je tlačidlo stlačené, pripojí príslušný pin na zem, čo umožní Arduinu zistiť zmenu stavu.
Podrobnosti z datasheetu
| Výrobca | Generic |
|---|---|
| Číslo dielu | 4-Key Keypad |
| Logické/IO napätie | 5 V |
| Napájacie napätie | 5 V |
| Počet klávesov | 4 |
| Typ spoločného pinu | Aktívny-nízky |
| Odpor tlačidla | 1 kΩ (typ.) |
| Puzdro | Flexibilný PCB |
| Poznámky / varianty | Dostupné vo viacerých rozloženiach |
- Každé tlačidlo vyžaduje dve pripojenia: jedno pre tlačidlo a jedno pre spoločnú zem.
- Použitie interných pull-up rezistorov zjednodušuje zapojenie a znižuje počet komponentov.
- Uistite sa, že spoločný pin je pripojený na zem pre správnu funkciu.
- V softvéri vykonajte debouncing stlačení tlačidiel, aby ste predišli falošným hodnotám.
- Otestujte funkčnosť tlačidiel pomocou jednoduchého sériového výpisu pre spätnú väzbu.
Pokyny na zapojenie

Na zapojenie štvorklávesovej klávesnice k Arduinu postupujte podľa týchto krokov:
- Pripojte prvý vodič klávesu na pin
2na Arduine. - Pripojte druhý vodič klávesu na pin
3. - Pripojte tretí vodič klávesu na pin
4. - Pripojte štvrtý vodič klávesu na pin
5. - Pripojte spoločný vodič z klávesnice na pin zeme na Arduine.
Uistite sa, že každý vodič je bezpečne pripojený, aby ste predišli voľným spojeniam. Ak narazíte na problémy, skontrolujte každé pripojenie podľa priradenia pinov zobrazeného vo videu (vo videu o 04:15).
Príklady kódu a vysvetlenie
Nasledujúci úryvok kódu inicializuje piny pre klávesnicu a nastaví ich ako vstupy:
#define key1 2 //pripojte vodič 1 na pin 2
#define key2 3 //pripojte vodič 2 na pin 3
#define key3 4 //pripojte vodič 3 na pin 4
#define key4 5 //pripojte vodič 4 na pin 5
void setup() {
Serial.begin(9600);
pinMode(key1, INPUT_PULLUP); // nastavte pin ako vstup
pinMode(key2, INPUT_PULLUP); // nastavte pin ako vstup
pinMode(key3, INPUT_PULLUP); // nastavte pin ako vstup
pinMode(key4, INPUT_PULLUP); // nastavte pin ako vstup
}
Vo vyššie uvedenom kóde je každý kláves definovaný s príslušným číslom pinu. Režim INPUT_PULLUP zabezpečuje, že piny čítajú vysokú hodnotu, keď nie sú stlačené, čo zjednodušuje detekciu stlačenia tlačidla.
Funkcia loop číta stav každého klávesu a pri stlačení vypíše príslušnú správu:
void loop() {
int key1S = digitalRead(key1); // čítanie, či je key1 stlačený
int key2S = digitalRead(key2); // čítanie, či je key2 stlačený
int key3S = digitalRead(key3); // čítanie, či je key3 stlačený
int key4S = digitalRead(key4); // čítanie, či je key4 stlačený
if(!key1S) {
Serial.println("kláves 1 je stlačený");
}
if(!key2S) {
Serial.println("kláves 2 je stlačený");
}
// Dodatočný kód pre key3 a key4...
delay(100);
}
Táto časť kódu kontroluje stav každého klávesu a vypíše správu do sériového monitora, keď je kláves stlačený. delay(100) umožňuje debouncing efekt, čím sa zabezpečí, že viacnásobné stlačenia nie sú zaregistrované v rýchlom slede.
Demonštrácia / Čo očakávať
Po úspešnom zapojení a nahratí kódu do Arduina by ste mali očakávať, že sériový monitor zobrazí správy označujúce, ktorý kláves je stlačený. Stlačenie klávesu jedna vypíše "kláves 1 je stlačený" a podobne pre ostatné klávesy. Ak sa správy nezobrazujú, skontrolujte zapojenie a uistite sa, že spoločný vodič je pripojený na zem.
Buďte opatrní pri obrátených pripojeniach, pretože to môže viesť k neočakávanému správaniu. Uistite sa, že použité piny zodpovedajú tým definovaným vo vašom kóde (vo videu o 06:45).
Časové značky videa
- 00:00 - Úvod
- 02:30 - Vysvetlenie zapojenia
- 04:15 - Priradenie pinov
- 06:45 - Testovanie klávesnice
Tento návod je súčasťou: Klávesnice
- Používanie 4x3 klávesnice s Arduinom
- Kód Arduina a video: 4x4 maticová čierna klávesnica
- Build a Simple Electronic Lock with Keypad and LCD Using Arduino
- Controlling an 8-channel relay with a 4x3 keypad
- Ako používať 4x4 mäkkú klávesnicu s Arduinom
- How to Use a 5x4 20-Key Keypad with Arduino to Detect Strings
- Lesson 67: Controlling an 8-Channel Relay with a Keypad Using Arduino
- 1602 LCD klávesnicový štít: Základný kód
++
/*
* This is the Arduino code for a 4-key keypad.
* Watch the video for details and demo: https://youtu.be/BiOh_Z2N7kk
*
* Written by Ahmad Shamshiri for the Robojax Video channel,
get code, wiring diagram and resources at www.Robojax.com/RJT37
* Date: December 28, 2017, in Ajax, Ontario, Canada
* Permission granted to share this code, given that this
* note is kept with the code.
* Disclaimer: This code is "AS IS" and for educational purposes only.
* This code has been downloaded from https://robojax.com
// Recorded December 28, 2017 for Robojax.com
#define key1 2 //connect wire 1 to pin 2
#define key2 3 //connect wire 2 to pin 3
#define key3 4 //connect wire 3 to pin 4
#define key4 5 //connect wire 4 to pin 5
void setup() {
Serial.begin(9600);
pinMode(key1, INPUT_PULLUP);// set pin as input
pinMode(key2, INPUT_PULLUP);// set pin as input
pinMode(key3, INPUT_PULLUP);// set pin as input
pinMode(key4, INPUT_PULLUP);// set pin as input
}
void loop() {
int key1S = digitalRead(key1);// read if key1 is pressed
int key2S = digitalRead(key2);// read if key2 is pressed
int key3S = digitalRead(key3);// read if key3 is pressed
int key4S = digitalRead(key4);// read if key4 is pressed
// Code written for Robojax.com video tutorial
if(!key1S){
Serial.println("key 1 is pressed");
}
if(!key2S){
Serial.println("key 2 is pressed");
}
if(!key3S){
Serial.println("key 3 is pressed");
}
if(!key4S){
Serial.println("key 4 is pressed");
}
delay(100);
}
Veci, ktoré by ste mohli potrebovať
-
Amazon
-
AliExpressBuy soft keypad from AliExpresss.click.aliexpress.com
Zdroje a referencie
Zatiaľ žiadne zdroje.