Hierdie tutorialie is deel van: Sleutelborde
Alle sleutelbordvideo's word hier gelys.
Hoe om 4x4 sagte sleutelblok met Arduino te gebruik
In hierdie tutoriaal gaan ons ondersoek hoe om 'n 4x4 sagte sleutelbord met 'n Arduino te verbind en te gebruik. Hierdie sleutelbord het sestien sleutels maar benodig slegs agt penne vir verbinding, wat dit 'n kompakte en doeltreffende invoertoestel vir verskeie projekte maak. Teen die einde van hierdie gids sal jy in staat wees om insette van die sleutelbord te lees en aksies te aktiveer gebaseer op daardie insette.

Ons gaan die Keypad-biblioteek gebruik om met die sleutelbord te koppel, wat ons in staat stel om maklik te bepaal watter sleutel gedruk word. Die program wat ons sal implementeer, sal die gedrukte sleutel op die reeksmonitor vertoon en aksie neem wanneer 'n spesifieke sleutel gedruk word, soos sleutel '4'. Vir meer visuele leiding, maak seker om die video te kyk by (in video by 00:00).
Hardeware Verduidelik
Die hoofkomponent van hierdie projek is die 4x4 sagte sleutelbord, wat bestaan uit 16 knoppies wat in 'n rooster gerangskik is. Elke knoppie verbind aan 'n spesifieke pen op die Arduino, wat dit in staat stel om te bepaal wanneer 'n knoppie gedruk word. Die sleutelbord werk deur 'n matriksskandeermetode te gebruik, waar die rye en kolomme in volgorde geaktiveer word om te bepaal watter sleutel gedruk word.
Om die sleutelbord te verbind, moet jy agt digitale penne op die Arduino gebruik. Die rye word tipies aan penne 2 tot 5 verbind, terwyl die kolomme aan penne 6 tot 9 verbind. Hierdie rangskikking stel die Arduino in staat om die toestand van elke sleutel effektief te lees.
Datablad Besonderhede
| breedte | 69mm |
|---|---|
| Lengte | 76mm |
| Kabellengte | 84mm |
| Konnekteurbreedte | 20mm |
| Konnekteurgatspasiëring | 2.56mm |
- Verseker behoorlike bedrading van ry- en kolompenne om verkeerde lesings te vermy.
- Gebruik optrekweerstande indien nodig om invoerlesings te stabiliseer.
- Ontklits sleutels in sagteware om veelvuldige lesings vir 'n enkele druk te vermy.
- Toets elke sleutel individueel om funksionaliteit te verseker.
- Hou die sleutelbord droog en skoon om werkverrigting te handhaaf.
Bedradingsinstruksies

Om die 4x4 sleutelbord aan die Arduino te bedraad, verbind die rypenne van die sleutelbord aan die digitale penne op die Arduino soos volg: verbind die eerste ry aan pen 2, die tweede ry aan pen 3, die derde ry aan pen 4, en die vierde ry aan pen 5. Vir die kolompenne, verbind die eerste kolom aan pen 6, die tweede kolom aan pen 7, die derde kolom aan pen 8, en die vierde kolom aan pen 9.
Hierdie opstelling stel die Arduino in staat om doeltreffend deur die rye en kolomme te skandeer. Maak seker om die verbindings dubbel te kontroleer om te verseker dat elke pen korrek ooreenstem met sy aangewese ry of kolom. In die video word alternatiewe bedradingskonfigurasies kortliks bespreek (in video by 01:15). As jy kies om anders te bedraad, werk eenvoudig die penommers in die kode dienooreenkomstig by.
Kode Voorbeelde & Deurloop
In die kode begin ons deur die Keypad-biblioteek in te sluit en die uitleg van die sleutelbord te definieer. Die rye en kolomme word opgestel deur gebruik te maak van skikkings, waar rowPins karteer na die digitale penne wat aan die rye verbind is en colPins karteer na die kolomme.
const byte ROWS = 4; //vier rye
const byte COLS = 4; //vier kolomme
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
In hierdie uittreksel definieer ons die aantal rye en kolomme, sowel as die karakteruitleg van die sleutels. Hierdie opstelling is noodsaaklik om te identifiseer watter sleutel gedruk word gebaseer op die ry en kolom wat geaktiveer word.
void setup(){
Serial.begin(9600);
}
Die setup-funksie initialiseer die reekskommunikasie teen 9600 baud-tempo. Dit is belangrik om sleuteldrukdata na die reeksmonitor te stuur vir ontfouting en verifikasie.
void loop(){
char key = keypad.getKey();
if (key){
Serial.println(key);
}
if (key =='4'){
Serial.println("Sleutel 4 is gedruk");
}
}
In die loop-funksie kontroleer ons voortdurend vir 'n gedrukte sleutel deur keypad.getKey() te gebruik. As 'n sleutel gedruk word, druk dit die sleutelwaarde na die reeksmonitor. Daarbenewens, as sleutel '4' gedruk word, druk dit 'n spesifieke boodskap wat aandui dat sleutel '4' geaktiveer is. Hierdie gedeelte van die kode maak voorsiening vir intydse interaksie gebaseer op gebruikersinvoer.
Demonstrasie / Wat om te VerwAg
Sodra alles opgestel is en die kode na jou Arduino opgelaai is, behoort jy die gedrukte sleutels in die Reeksmonitor te sien vertoon. As jy sleutel '4' druk, sal die boodskap "Sleutel 4 is gedruk" verskyn, wat bevestig dat die invoer suksesvol opgespoor is. Wees versigtig vir algemene slaggate, soos drywende insette of verkeerde bedrading, wat tot foutiewe lesings kan lei (in video by 02:30).
Video Tydstempels
- 00:00 - Inleiding tot die sleutelbord
- 01:15 - Bedradingsinstruksies
- 02:30 - Kodeverduideliking en demonstrasie
Hierdie handleiding is deel van: Sleutelborde
- Gebruik van 4x3-sleutelbord met Arduino
- Arduino-kode en video vir 'n vier-sleutel-sleutelbord
- Arduino-kode en video: 4x4-matriks swart sleutelbord
- Build a Simple Electronic Lock with Keypad and LCD Using Arduino
- Controlling an 8-channel relay with a 4x3 keypad
- 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-sleutelbordskerm: Basiese kode
/*
* Original source: https://playground.arduino.cc/Code/Keypad
* This is the Arduino code for a 4x4 keypad.
* Watch the video for details and demo: http://youtu.be/qIDzzG2LUtg
*
* Written by Ahmad Nejrabi for Robojax Video channel: www.Robojax.com
* Date: December 18, 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
*
*/
/* @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 = 4; //four columns
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {2, 3, 4, 5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {6,7,8,9}; //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
Serial.begin(9600);
}
void loop(){
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'){
Serial.println("Key 4 is pressed");
}
}
Goedere wat jy dalk nodig het
-
AmazonBuy 4x4 keypad from Amazonamzn.to
-
AliExpressBuy soft keypad from AliExpresss.click.aliexpress.com
Hulpbronne en verwysings
Geen hulpbronne nog.