Hierdie tutorialie is deel van: Sleutelborde
Alle sleutelbordvideo's word hier gelys.
Gebruik van 4x3-sleutelbord met Arduino
In hierdie tutoriaal gaan ons ondersoek hoe om 'n 4x3-sleutelbord met 'n Arduino te gebruik om sleuteldrukke te lees. Hierdie sleutelbord kan in verskeie projekte gebruik word, soos om 'n eenvoudige invoerkoppelvlak vir 'n sekuriteitstelsel of enige toepassing wat gebruikersinvoer vereis, te skep. Teen die einde van hierdie gids sal jy sleuteldrukke kan lees en op spesifieke sleutels kan reageer.

Maak seker dat jy die gepaardgaande video nagaan vir 'n visuele demonstrasie van die bedrading en kode-implementering (in video by 00:00).
Hardeware Verduidelik
Die hoofkomponente vir hierdie projek sluit die 4x3-sleutelbord en die Arduino-bord in. Die sleutelbord bestaan uit 'n matriks van knoppies wat in 4 rye en 3 kolomme gerangskik is. Wanneer 'n knoppie gedruk word, verbind dit 'n spesifieke ry aan 'n spesifieke kolom, wat die Arduino in staat stel om te identifiseer watter knoppie gedruk is.
Die Arduino-bord dien as die sentrale beheerder wat die sleutelbordinvoere lees. Dit gebruik die Keypad-biblioteek, wat die proses van die bestuur van die matriks-sleutelbord vereenvoudig en dit makliker maak om sleuteldrukke op te spoor.
Datablad Besonderhede
| Vervaardiger | Verskeie |
|---|---|
| Deelnommer | 4x3 Sleutelbord |
| Logika-spanning | 5 V |
| Werksstroom | ≤ 20 mA |
| Sleutelleeftyd | ≥ 1,000,000 drukke |
| Pakket | Matriks Sleutelbord |
- Verbind die sleutelbordpenne korrek aan die Arduino se digitale penne.
- Gebruik optrek- of aftrekweerstande indien nodig, afhangende van jou opstelling.
- Maak seker dat die Keypad-biblioteek in jou Arduino IDE ingesluit is.
- Ontklits die sleuteldrukke in sagteware om veelvuldige lesings te vermy.
- Toets elke sleutel om korrekte bedrading en funksionaliteit te bevestig.
Bedradingsinstruksies

Om die 4x3-sleutelbord aan die Arduino te bedraad, sal jy die ry- en kolompenne van die sleutelbord aan die digitale penne op die Arduino verbind. Verbind die rypenne (gewoonlik 4 penne) aan penne 2, 3, 4 en 5 op die Arduino. Die kolompenne (gewoonlik 3 penne) moet aan penne 6, 7 en 8 verbind word.
Maak seker dat jy die sleutelbord se grondpen aan die Arduino se grond verbind en die kragpen aan die 5V-uitset. Hierdie opstelling sal die Arduino in staat stel om die toestand van elke sleutel te lees wanneer dit gedruk word, deur die Keypad-biblioteek te gebruik om die matriksskandering te hanteer.
Kode Voorbeelde & Deurloop
Die volgende kode initialiseer die sleutelbord en druk die gedrukte sleutel na die seriële monitor. Die sleutelwaardes word in 'n karakterreeks gestoor.
const byte ROWS = 4; //vier rye
const byte COLS = 3; //drie kolomme
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
Die keys-reeks definieer die uitleg van die sleutelbord, wat ooreenstem met die fisiese rangskikking van sleutels. Elke karakter verteenwoordig 'n knoppie op die sleutelbord.

Volgende stel ons die sleutelbord op in die setup()-funksie:
void setup(){
Serial.begin(9600);
Serial.println("Robojax 4x3 sleutelbord");
}
Hierdie segment initialiseer die seriële kommunikasie teen 'n baud-tempo van 9600, wat ons in staat stel om die sleuteldrukke in die seriële monitor te sien.
Laastens kontroleer die lus vir sleuteldrukke en reageer dienooreenkomstig:
void loop(){
char key = keypad.getKey();
if (key){
Serial.println(key);
}
if (key =='4'){
Serial.println("Sleutel 4 is gedruk");
}
}
Hier kontroleer die program of enige sleutel gedruk is deur keypad.getKey() te gebruik. As 'n sleutel gedruk word, druk dit die sleutel se waarde. Daarbenewens, as die sleutel '4' gedruk word, word 'n spesifieke boodskap vertoon.
Demonstrasie / Wat om te Verwacht
Wanneer die opstelling voltooi is, sal die druk van enige sleutel op die sleutelbord die ooreenstemmende karakter na die seriële monitor uitvoer. As die sleutel '4' gedruk word, sal 'n spesiale boodskap gedruk word wat die aktivering van daardie sleutel aandui. Hierdie funksionaliteit stel jou in staat om op hierdie fondament voort te bou vir meer komplekse toepassings.
Wees versigtig vir drywende invoere wat tot onreëlmatige gedrag kan lei. Maak seker dat alle verbindings veilig is en toets elke sleutel om behoorlike funksionaliteit te bevestig (in video by 00:00).
Hierdie handleiding is deel van: Sleutelborde
- Arduino Code and Video for a Four-Key Keypad
- Arduino Code and Video: 4x4 Matrix Black Keypad
- Build a Simple Electronic Lock with Keypad and LCD Using Arduino
- Controlling an 8-channel relay with a 4x3 keypad
- How to use 4x4 Soft Keypad with Arduino
- 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 Keypad Shield: Basic Code
/*
* 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");
}
}
Goedere wat jy dalk nodig het
-
AmazonPurchase 4x3 keypad from Amazonamzn.to
Hulpbronne en verwysings
Geen hulpbronne nog.
Lêers📁
Fritzing-lêer
-
Membrane Matrix Keypad 4x3
Membrane Matrix Keypad 4x3.fzpz0.01 MB
Ander lêers
-
LCD keypad library
robojax-1602_LCD_keypad.zip0.01 MB