Mafunzo haya ni sehemu ya: Vitufe vya vitufe
Video zote za vitufe zimeorodheshwa hapa.
Kutumia 4x3 Keypad na Arduino
Katika mafunzo haya, tutachunguza jinsi ya kutumia kibodi ya 4x3 na Arduino kusoma mabonyezo ya vitufe. Kibodi hii inaweza kutumika katika miradi mbalimbali, kama vile kuunda kiolesura rahisi cha kuingiza data kwa mfumo wa usalama au programu yoyote inayohitaji muingizo wa mtumiaji. Kufikia mwisho wa mwongozo huu, utaweza kusoma mabonyezo ya vitufe na kujibu vitufe maalum.

Hakikisha umeangalia video inayoandamana kwa maonyesho ya kuona ya uunganishaji wa waya na utekelezaji wa msimbo (katika video saa 00:00).
Vifaa Vimeelezwa
Vipengele vikuu vya mradi huu ni pamoja na kibodi ya 4x3 na bodi ya Arduino. Kibodi ina matrix ya vitufe vilivyopangwa katika safu 4 na nguzo 3. Kitufe kinapobonyezwa, huunganisha safu maalum na nguzo maalum, ikiruhusu Arduino kutambua ni kitufe kipi kilibonyezwa.
Bodi ya Arduino hufanya kazi kama kidhibiti kikuu kinachosoma muingizo wa kibodi. Inatumia maktaba ya Keypad, ambayo hurahisisha mchakato wa kusimamia kibodi ya matrix na kufanya iwe rahisi kugundua mabonyezo ya vitufe.
Maelezo ya Datasheet
| Mtengenezaji | Mbalimbali |
|---|---|
| Nambari ya sehemu | Kibodi ya 4x3 |
| Voltaji ya mantiki | 5 V |
| Uendeshaji wa sasa | ≤ 20 mA |
| Maisha ya kitufe | ≥ 1,000,000 mabonyezo |
| Kifurushi | Kibodi ya Matrix |
- Unganisha pini za kibodi kwa usahihi kwenye pini za dijiti za Arduino.
- Tumia resistors za pull-up au pull-down ikihitajika, kulingana na usanidi wako.
- Hakikisha maktaba ya Keypad imejumuishwa kwenye Arduino IDE yako.
- Debounce mabonyezo ya vitufe katika programu ili kuepuka usomaji mwingi.
- Jaribu kila kitufe ili kuthibitisha uunganishaji sahihi wa waya na utendakazi.
Maagizo ya Uunganishaji wa Waya

Ili kuunganisha kibodi ya 4x3 kwenye Arduino, utaunganisha pini za safu na nguzo kutoka kwenye kibodi hadi kwenye pini za dijiti za Arduino. Unganisha pini za safu (kwa kawaida pini 4) kwenye pini 2, 3, 4, na 5 kwenye Arduino. Pini za nguzo (kwa kawaida pini 3) zinapaswa kuunganishwa kwenye pini 6, 7, na 8.
Hakikisha umeunganisha pini ya ardhi ya kibodi kwenye ardhi ya Arduino na pini ya nguvu kwenye pato la 5V. Usanidi huu utaruhusu Arduino kusoma hali ya kila kitufe kinapobonyezwa, kwa kutumia maktaba ya Keypad kushughulikia uchanganuzi wa matrix.
Mifano ya Msimbo na Maelekezo
Msimbo ufuatao huanzisha kibodi na kuchapisha kitufe kilichobonyezwa kwenye mfuatiliaji wa serial. Thamani za vitufe huhifadhiwa katika safu ya herufi.
const byte ROWS = 4; //safu nne
const byte COLS = 3; //nguzo tatu
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
Safu ya keys inafafanua mpangilio wa kibodi, unaolingana na mpangilio wa kimwili wa vitufe. Kila herufi inawakilisha kitufe kwenye kibodi.

Ifuatayo, tunaanzisha kibodi katika kazi ya setup():
void setup(){
Serial.begin(9600);
Serial.println("Robojax 4x3 keypad");
}
Sehemu hii huanzisha mawasiliano ya serial kwa kiwango cha baud 9600, ikituruhusu kuona mabonyezo ya vitufe kwenye mfuatiliaji wa serial.
Hatimaye, kitanzi huangalia mabonyezo ya vitufe na kujibu ipasavyo:
void loop(){
char key = keypad.getKey();
if (key){
Serial.println(key);
}
if (key =='4'){
Serial.println("Key 4 is pressed");
}
}
Hapa, programu huangalia ikiwa kitufe chochote kimebonyezwa kwa kutumia keypad.getKey(). Kitufe kinapobonyezwa, inachapisha thamani ya kitufe. Zaidi ya hayo, kitufe '4' kinapobonyezwa, ujumbe maalum unaonyeshwa.
Maonyesho / Nini cha Kutarajia
Usanidi ukikamilika, kubonyeza kitufe chochote kwenye kibodi kunapaswa kutoa herufi inayolingana kwenye mfuatiliaji wa serial. Kitufe '4' kinapobonyezwa, ujumbe maalum utachapishwa kuashiria uanzishaji wa kitufe hicho. Utendakazi huu unakuruhusu kujenga juu ya msingi huu kwa programu ngumu zaidi.
Kuwa makini na muingizo unaoelea ambao unaweza kusababisha tabia isiyotabirika. Hakikisha miunganisho yote ni salama na jaribu kila kitufe ili kuthibitisha utendakazi sahihi (katika video saa 00:00).
Mafunzo haya ni sehemu ya: Vitufe vya vitufe
- Kodi ya Arduino na Video kwa Keypad ya Funguo Nne
- Kodi ya Arduino na Video: Kibodi Nyeusi ya Matrix 4x4
- Build a Simple Electronic Lock with Keypad and LCD Using Arduino
- Controlling an 8-channel relay with a 4x3 keypad
- Jinsi ya kutumia 4x4 Soft Keypad na 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
- Kibao cha LCD 1602 chenye Kibodi: Msimbo wa Msingi
/*
* 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");
}
}
Tänker att du kanske behöver
-
AmazonPurchase 4x3 keypad from Amazonamzn.to
Resurser och referenser
Inga resurser än.
Filer📁
Fritzing-fil
-
Membrane Matrix Keypad 4x3
Membrane Matrix Keypad 4x3.fzpz0.01 MB
Andra filer
-
LCD-tangentboksbibliotek
robojax-1602_LCD_keypad.zip0.01 MB