Hierdie tutorialie is deel van: Sleutelborde
Alle sleutelbordvideo's word hier gelys.
Arduino-kode en video vir 'n vier-sleutel-sleutelbord
In hierdie tutoriaal gaan ons leer hoe om 'n vier-sleutel sleutelbord met 'n Arduino te gebruik. Hierdie projek is veral nuttig vir toepassings waar jy veelvuldige knoppies nodig het maar die aantal drade wat gebruik word, wil minimaliseer. Deur die sleutelbord op 'n spesifieke manier te koppel, kan ons 'n funksionele opstelling met net vyf drade in plaas van agt bereik.

Die vier-sleutel sleutelbord vereenvoudig die bedradingsproses, aangesien dit 'n gemeenskaplike verbinding het wat die totale aantal drade wat benodig word, verminder. Elke sleutel is gekoppel aan die Arduino deur aangewese penne, wat maklike interaksie en beheer moontlik maak. Hierdie gids sal die bedrading, kode en verwagte gedrag van die sleutelbord dek, sodat jy die projek suksesvol kan herhaal (in video by 02:30).
Hardeware Verduidelik
Die hoofkomponente van hierdie projek sluit 'n vier-sleutel sleutelbord en 'n Arduino-bord in. Die sleutelbord bevat vier knoppies, en elke knoppie verbind aan die Arduino via twee drade—een gemeenskaplike draad en een toegewyde draad vir elke knoppie. Hierdie opstelling maak voorsiening vir eenvoudige verbindings terwyl rommel geminimaliseer word.
Die Arduino interpreteer die knoppiedrukke met behulp van digitale insette, en maak staat op interne optrek-weerstande om stabiele lesings te verseker. Wanneer 'n knoppie gedruk word, verbind dit die ooreenstemmende pen aan grond, wat die Arduino in staat stel om die verandering in toestand op te spoor.
Datablad Besonderhede
| Vervaardiger | Generies |
|---|---|
| Deelnommer | 4-Sleutel Sleutelbord |
| Logika/IO-spanning | 5 V |
| Toevoerspanning | 5 V |
| Aantal sleutels | 4 |
| Gemeenskaplike pen tipe | Aktief-laag |
| Knoppieweerstand | 1 kΩ (tip.) |
| Pakket | Buigsame PCB |
| Notas / variante | Beskikbaar in veelvuldige uitlegte |
- Elke knoppie benodig twee verbindings: een vir die knoppie en een vir die gemeenskaplike grond.
- Die gebruik van interne optrek-weerstande vereenvoudig bedrading en verminder komponenttelling.
- Maak seker die gemeenskaplike pen is aan grond gekoppel vir korrekte werking.
- Ontklits knoppiedrukke in sagteware om vals lesings te vermy.
- Toets knoppiefunksionaliteit met 'n eenvoudige reeksdruk vir terugvoer.
Bedradingsinstruksies

Om die vier-sleutel sleutelbord aan die Arduino te bedraad, volg hierdie stappe:
- Koppel die eerste sleuteldraad aan pen
2op die Arduino. - Koppel die tweede sleuteldraad aan pen
3. - Koppel die derde sleuteldraad aan pen
4. - Koppel die vierde sleuteldraad aan pen
5. - Koppel die gemeenskaplike draad van die sleutelbord aan die grondpen op die Arduino.
Maak seker dat elke draad veilig gekoppel is om los verbindings te vermy. As jy probleme ervaar, kontroleer elke verbinding teen die pen-toewysings wat in die video gewys word (in video by 04:15).
Kode Voorbeelde & Deurloop
Die volgende kodestuk initialiseer die penne vir die sleutelbord en stel hulle as insette:
#define key1 2 //koppel draad 1 aan pen 2
#define key2 3 //koppel draad 2 aan pen 3
#define key3 4 //koppel draad 3 aan pen 4
#define key4 5 //koppel draad 4 aan pen 5
void setup() {
Serial.begin(9600);
pinMode(key1, INPUT_PULLUP); // stel pen as inset
pinMode(key2, INPUT_PULLUP); // stel pen as inset
pinMode(key3, INPUT_PULLUP); // stel pen as inset
pinMode(key4, INPUT_PULLUP); // stel pen as inset
}
In die kode hierbo word elke sleutel met 'n ooreenstemmende penommer gedefinieer. Die INPUT_PULLUP-modus verseker dat die penne hoog lees wanneer nie gedruk nie, wat die knoppiedruk-opsporing vereenvoudig.
Die lusfunksie lees die toestand van elke sleutel en druk die ooreenstemmende boodskap wanneer gedruk:
void loop() {
int key1S = digitalRead(key1); // lees of key1 gedruk is
int key2S = digitalRead(key2); // lees of key2 gedruk is
int key3S = digitalRead(key3); // lees of key3 gedruk is
int key4S = digitalRead(key4); // lees of key4 gedruk is
if(!key1S) {
Serial.println("sleutel 1 is gedruk");
}
if(!key2S) {
Serial.println("sleutel 2 is gedruk");
}
// Bykomende kode vir key3 en key4...
delay(100);
}
Hierdie segment van kode kontroleer die toestand van elke sleutel en druk 'n boodskap na die reeksmonitor wanneer 'n sleutel gedruk word. Die delay(100) maak voorsiening vir 'n ontklitseffek, wat verseker dat veelvuldige drukke nie in vinnige opeenvolging geregistreer word nie.
Demonstrasie / Wat om te Verwags
Na suksesvolle bedrading en oplaai van die kode na jou Arduino, moet jy verwag dat die reeksmonitor boodskappe vertoon wat aandui watter sleutel gedruk is. Druk sleutel een sal "sleutel 1 is gedruk" uitset en so aan vir die ander sleutels. As die boodskappe nie verskyn nie, kontroleer jou bedrading en maak seker die gemeenskaplike draad is aan grond gekoppel.
Wees versigtig vir omgekeerde verbindings, aangesien dit tot onverwagte gedrag kan lei. Maak seker dat die penne wat gebruik word ooreenstem met dié wat in jou kode gedefinieer is (in video by 06:45).
Video Tydstempels
- 00:00 - Inleiding
- 02:30 - Bedrading Verduideliking
- 04:15 - Pen Toewysings
- 06:45 - Toets die Sleutelbord
Hierdie handleiding is deel van: Sleutelborde
- Gebruik van 4x3-sleutelbord met Arduino
- 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
- Hoe om 4x4 sagte sleutelblok met Arduino te gebruik
- 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
++
/*
* 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);
}
Goedere wat jy dalk nodig het
-
Amazon
-
AliExpressBuy soft keypad from AliExpresss.click.aliexpress.com
Hulpbronne en verwysings
Geen hulpbronne nog.