Interfacing Keypad With Arduino In Hindi

0
117

हैल्लो  फ्रेंड्स… क्या चल रहा है? चलिए बढाते हैं एक कदम और अपनी Arduino की journey में.  मै अभिषेकं आपका गाइड और दोस्त इस बेहतरीन सफ़र में. तो आज हम सिखेंगे arduino और keypad को केसे interface करते है.

अगर आपने अभी तक कुछ मिस किया है तो कोई बात नहीं यहाँ नीचे आप वो भी learn कर सकते हैं.

Arduino क्या है? | Introduction |History|Types |
ARDUINO IDE इंस्टालेशन | Step By Step |
Arduino: First Project: Blinking LED

पर keypad…? क्यूँ ??

Keypad से हम input ले सकते है. LCD की तरह हम कीपैड को भी कई सारी जगह पर देखते है. Keypad से हम कम pins का use करके ज्यादा commands input में दे सकते है. हम सबसे ज्यादा popular 4 X 4 matrix keypad की बात करेंगे.

Keypad Architecture

4 x 4 keypad में 16 pushbutton होते है. इसका मतलब हम 16 different input दे सकते है. अब आपको लगता होगा की हमे 16 inputs के लिए 16 pins चाइये होंगे. लेकिन हमे keypad के लिए सिर्फ 8 ही pins चाइये. चलिए समझते है की keypad काम केसे करता है. 4 x 4 कीपैड कुछ एसा दीखता है. इसमें 4 row और 4 column pins होती है.

2019-02-10_21h53_48.png

Interfacing with Ardiuno

अब हम यह 8 pins Ardiuno के digital pins के साथ connect कर देंगे. हमे rows को 0(low) रखना है और columns को 1(high) रखना है. अब जब कोई key हमने प्रेस की तब जिस row और column के बीच में वो key है उसके बिच connection बनेगा और वो column 0(low) हो जाएगा क्युकी सारे rows low पर  है. इससे हमे कौन सी column है वो पता चल जाएगा. लेकिन कौन सी row की pin है वो पता लगाना थोडा मुश्किल  है.

उसके लिए हम जब key pressed है तब ही हम एक एक करके row pins को high करेंगे. इससे जो key press की है वो row उस column को  high input देगी इससे हमे कौन सी row है वो पता चल जाएगा.

2019-02-10_21h55_21.png

अब हम मानते है की हमने A key प्रेस की. शुरुआत में सारे rows low और सारे columns high है. A को प्रेस करने से row 3 और column 3 connect हो जायेंगे और column 3 low हो जाएगा. इसे हमे पता चला की प्रेस की हुई key column 3 की है. इसका मतलब अगर हम 2,6,A,E किसी भी key को प्रेस करते तो column 3 low हो जाता है.

अब कौन सी row है वो पता करने के लिए हम एक-एक करके row पिन को high करके column पर input चेक करते रहेंगे. अब A, row 3 पर है तो जब row 3 high करेंगे तब ही column 3 पर high input जाएगा वरना नहीं. इससे हमे पता चला की A key प्रेस की गई है.

अब आप सोच रहे होंगे की एक बटन और इतनी सारी process, पर इसका hack है keypad की library. इससे आप keypad को बड़ी आसानी से इस्तमाल कर सकते है. Arduino community के पास बड़ा ही अच्छा library support है. इसको use करने के लिए हम उसकी library file डाउनलोड करके उसको “arduino/libraries” location में copy कर लेंगे. तो हम keypad.h library file डाउनलोड करके “arduino/libraries” पर save कर देंगे.

अब चलिए सीखते है इसकी कोडिंग. तो चलिए बताइए, सबसे पहले क्या करेंगे?? जी हाँ, सबसे पहले हम keypad.h header file include करेंगे. उसके बाद हम कोड कुछ इस प्रकार लिखेंगे:

Code

#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 4;
char techKeys[ROWS][COLS] = {
{'7','8','9','/'},
{'4','5','6','*'},
{'1','2','3','-'},
{'on','0','=','+'}
};

byte rowPins[ROWS] = {7, 6, 5, 4};
byte colPins[COLS] ={ 11,10, 9, 8};

Keypad kpd = Keypad( makeKeymap(techKeys), rowPins, colPins, ROWS, COLS);

void setup(){
Serial.begin(9600);
}

void loop(){
  char number = kpd.getKey();
  if (number){
  Serial.println(number);
 }
}

2019-02-10_22h00_05.png

Header file डालने के बाद हम arduino और keypad interface करने के लिए setup करते है. उसके लिए सबसे पहले दो constant int ROWS और COLS डिफाइन करते है. अगर आपका कीपैड 2×3 matrix का है(मतलब 6 बटन्स) तो ROWS 2 और COLS 3 होंगे. फिर आप matrix डिफाइन करेंगे की किस बटन पे कोनसा character या number है. में यहाँ बताना चाहता हू की आप सिर्फ number की matrix ही नहीं बल्कि character symbols की भी matrix बना सकते है. यह matrix, c प्रोग्राम में जो 2D matrix होती है उस syntax में लिखते है(कोड में देख सकते है).

2019-02-10_22h01_04.png

अब हम arduino की pins डिफाइन करते है. उसके लिए ही हमने rowPins और colPins की दो matrix बनाई है जिसमे पिन number है. हमारे लिखे गए कोड में arduino की  4,5,6,7 pins row के लिए और 11,10,9,8 columns के लिए है. कोड की अगली लाइन Keypad kpd = Keypad( makeKeymap(techKeys), rowPins, colPins, ROWS, COLS);  बड़ी important है. इसमें हम एक kpd नाम का keypad बनाते है जिसमे हमने techkeys को map किया है और rowPins,colPins उसकी pins है और यह “ROWS x COLS” का कीपैड है.

तो हमने अपना कीपैड initialize कर दिया, अब इसे use करते है. setup में serial communication 9600 की baudrate पर set करके start करते है.  अब लूप में हम एक char(character) type का variable डिफाइन करके उसमे जो key प्रेस हुई होगी उसकी value स्टोर करेंगे. कौन सी key प्रेस हुई है उसके लिए हम Keypad.h का function getKey() use करेंगे. अब जब-जब key प्रेस होगी तब-तब वो key serial मॉनिटर में देख पाएंगे.

Keypad.h के दूसरे बहुत  सारे functions होते है, जेसे

  1. waitForKey(): इससे arduino key press की wait करेगा, पर यह बाकी सारे statement block कर देगा. इसका मतलब हम दुसरा कोई और task नहीं कर पाएंगे.
  2. getState(): किसी भी key का state जानने के लिए. key के चार state होते है.IDLE, PRESSED, RELEASED,HOLD.
  3. setHoldTime(int number): key को कितने milisecond के लिए press रखना पड़ेगा की वो HOLD कहलये.

तो दोस्तों हमने आज कीपैड की working, और arduino के साथ interfacing करना सिखा. आप मुझसे शेयर कीजिये की यह article कैसा लगा और आगे आप क्या सीखना चाहते है? अगले आर्टिकल तक के लिए… सायोनारा …


LEAVE A REPLY

Please enter your comment!
Please enter your name here