Hľadať kód

Používanie 4x3 klávesnice s Arduinom

Používanie 4x3 klávesnice s Arduinom

V tomto návode si ukážeme, ako používať 4x3 klávesnicu s Arduino na čítanie stlačení klávesov. Túto klávesnicu možno využiť v rôznych projektoch, napríklad na vytvorenie jednoduchého vstupného rozhrania pre bezpečnostný systém alebo akúkoľvek aplikáciu vyžadujúcu vstup od používateľa. Na konci tejto príručky budete schopní čítať stlačenia klávesov a reagovať na konkrétne klávesy.

Nezabudnite si pozrieť sprievodné video pre vizuálnu ukážku zapojenia a implementácie kódu (vo videu o 00:00).

Vysvetlenie hardvéru

Hlavné komponenty pre tento projekt zahŕňajú 4x3 klávesnicu a dosku Arduino. Klávesnica pozostáva z matice tlačidiel usporiadaných v 4 riadkoch a 3 stĺpcoch. Keď sa stlačí tlačidlo, spojí konkrétny riadok s konkrétnym stĺpcom, čo umožňuje Arduinu identifikovať, ktoré tlačidlo bolo stlačené.

Doska Arduino funguje ako centrálny ovládač, ktorý číta vstupy z klávesnice. Využíva knižnicu Keypad, ktorá zjednodušuje proces správy maticovej klávesnice a uľahčuje detekciu stlačení klávesov.

Podrobnosti z datasheetu

VýrobcaRôzni
Číslo dielu4x3 klávesnica
Logické napätie5 V
Prevádzkový prúd≤ 20 mA
Životnosť klávesov≥ 1 000 000 stlačení
BalenieMaticová klávesnica

  • Pripojte piny klávesnice správne k digitálnym pinom Arduina.
  • V prípade potreby použite pull-up alebo pull-down rezistory v závislosti od vášho zapojenia.
  • Uistite sa, že knižnica Keypad je zahrnutá vo vašom Arduino IDE.
  • V softvéri vykonajte debouncing stlačení klávesov, aby ste predišli viacnásobnému čítaniu.
  • Otestujte každý kláves, aby ste potvrdili správne zapojenie a funkčnosť.

Pokyny na zapojenie

Arduino_wiring_4x3_keypad

Na zapojenie 4x3 klávesnice k Arduinu pripojíte piny riadkov a stĺpcov z klávesnice k digitálnym pinom na Arduine. Pripojte piny riadkov (zvyčajne 4 piny) k pinom 2, 3, 4 a 5 na Arduine. Piny stĺpcov (zvyčajne 3 piny) by mali byť pripojené k pinom 6, 7 a 8.

Uistite sa, že uzemňovací pin klávesnice pripojíte k uzemneniu Arduina a napájací pin k výstupu 5V. Toto zapojenie umožní Arduinu čítať stav každého klávesu pri stlačení pomocou knižnice Keypad na spracovanie skenovania matice.

Príklady kódu a vysvetlenie

Nasledujúci kód inicializuje klávesnicu a vypisuje stlačený kláves do sériového monitora. Hodnoty klávesov sú uložené v poli znakov.

const byte ROWS = 4; //štyri riadky
const byte COLS = 3; //tri stĺpce
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};

Pole keys definuje rozloženie klávesnice, ktoré zodpovedá fyzickému usporiadaniu klávesov. Každý znak predstavuje tlačidlo na klávesnici.

Ďalej nastavíme klávesnicu vo funkcii setup():

void setup(){
  Serial.begin(9600);
  Serial.println("Robojax 4x3 klávesnica");
}

Tento segment inicializuje sériovú komunikáciu pri prenosovej rýchlosti 9600, čo nám umožňuje zobraziť stlačenia klávesov v sériovom monitore.

Nakoniec slučka kontroluje stlačenia klávesov a primerane reaguje:

void loop(){
  char key = keypad.getKey();
  if (key){
    Serial.println(key);
  } 
  if (key =='4'){
    Serial.println("Kláves 4 je stlačený");
  } 
}

Tu program kontroluje, či je stlačený nejaký kláves pomocou keypad.getKey(). Ak je kláves stlačený, vypíše jeho hodnotu. Okrem toho, ak je stlačený kláves '4', zobrazí sa konkrétna správa.

Ukážka / Čo očakávať

Keď je zapojenie dokončené, stlačenie ľubovoľného klávesu na klávesnici by malo vypísať zodpovedajúci znak do sériového monitora. Ak sa stlačí kláves '4', vypíše sa špeciálna správa oznamujúca aktiváciu tohto klávesu. Táto funkcia vám umožňuje stavať na tomto základe pre zložitejšie aplikácie.

Buďte opatrní pri plávajúcich vstupoch, ktoré môžu viesť k nepravidelnému správaniu. Uistite sa, že všetky spojenia sú pevné, a otestujte každý kláves, aby ste potvrdili správnu funkčnosť (vo videu o 00:00).

Obrázky

4x3_kaypad-1
4x3_kaypad-1
4x3_kaypad-2
4x3_kaypad-2
4x3_kaypad-3
4x3_kaypad-3
4x3_kaypad-4
4x3_kaypad-4
4x3_kaypad-5
4x3_kaypad-5
Arduino_wiring_4x3_keypad
Arduino_wiring_4x3_keypad
128-Ardunino code for 4x3 keypad
Jazyk: C++
/*
 * Library taken from: https://playground.arduino.cc/Code/Keypad
 * This is the Arduino code for a 4x3 keypad.
 * Watch the video for details and demo: http://youtu.be/qIDzzG2LUtg
resources page: www.Robojax.com/RJT104
 * 
 * Modified by Ahmad Shamshiri for the Robojax Video channel: www.Robojax.com/RJT104
 * Date: July 11, 2018 at 19:56 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
 * Watch video instructions for this code: 
 * 
 */
/* @file HelloKeypad.pde
|| @version 1.0
|| @author Alexander Brevig
|| @contact alexanderbrevig@gmail.com
||
|| @description
|| | Demonstrates the simplest use of the matrix Keypad library.
|| #
*/
#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};

byte rowPins[ROWS] = {2, 3, 4, 5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {6,7,8}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){
  // Robojax 4x3 keypad test
  Serial.begin(9600);
  Serial.println("Robojax 4x3 keypad");
}
  
void loop(){
  // Robojax 4x3 keypad test
  char key = keypad.getKey();
    // Just print the pressed key
   if (key){
    Serial.println(key);
  } 
   // This checks if 4 is pressed, then do something. Here we print the text, but you can control something.
  if (key =='4'){
    // If key matches what you are looking for
    Serial.println("Key 4 is pressed");
  } 

}

Veci, ktoré by ste mohli potrebovať

Zdroje a referencie

Zatiaľ žiadne zdroje.

Súbory📁

Súbor Fritzing

Iné súbory