Tafuta Msimbo

Kutumia 4x3 Keypad na Arduino

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

MtengenezajiMbalimbali
Nambari ya sehemuKibodi ya 4x3
Voltaji ya mantiki5 V
Uendeshaji wa sasa≤ 20 mA
Maisha ya kitufe≥ 1,000,000 mabonyezo
KifurushiKibodi 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

Arduino_wiring_4x3_keypad

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).

Bilder

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
Språk: 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");
  } 

}

Tänker att du kanske behöver

Resurser och referenser

Inga resurser än.

Filer📁

Fritzing-fil

Andra filer