کی پد از جمله ابزار های تعاملی در پروژه های امبدد هستند که کاربرد فراوانی دارند . از کی پد ها می توان برای تنظیم منو های مختلف ، تغییر پارامترهای یک منو در یک پروژه با رابط گرافیکی و… استفاده نمود . کی پد ها در مدل های مختلفی ساخته می شوند از مدل های فلزی مقاوم در برابر گرد غبار تا مدل های تاچ . اما راه اندازی و به کار گیری آن ها تقریبا مشابه است و تنها در مدل های تاچ ممکن است فرق داشته باشند . یکی از مدل های کاربردی کی پد ها مدل های ممبران است . در این مدل ها از یک طلق نازک پلاستیکی در لایه خارجی کی پد استفاده شده است . کی پد های ممبران ضخامت بسیار کمی دارند و به راحتی می توان آن ها روی سطوح چسپاند .

در تصویر زیر یک نمونه از کی پد ممبران نشان داده شده است :

در تصویر زیر قسمت میانی کی پد ممران نشان داده شده است :

 

همان طور که در تصویر فوق مشخص است هر کلید دارای یک پین مشترک در سطر و یک پین مشترک در ستون خود است . برای کنترل یک کی پد MCU هر بار یک ستون را صفر کرده ( یا یک ) و سپس با برسی کلیه سطر ها ، کلید فشار داده شده در ستون را تشخیص می دهد و سپس برای ستون بعدی همین فرایند را تکرار میکندو پروسه اسکن کردن ستون ها توسط MCU بسیار سریع است لذا کاربر متوجه تاخیر آن نمی شود .

در گیف پایین به خوبی نحوه کنترل کی پد نشان داده شده است :

 

 

 

برای راه اندازی کی پد توسط آردوینو از کتابخانه keypad.h استفاده می شود . این کتابخانه کلیه پیکر بندی های مربوط به تایمر ها و اسکن سطری کی پد را انجام می دهد .

در تصویر زیر نحوه اتصال کی پد به آردوینو نشان داده شده است :

 

برنامه راه اندازی توسط آردوینو :

#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] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad

//Create an object of keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){
  Serial.begin(9600);
}
  
void loop(){
  char key = keypad.getKey();// Read the key
  
  // Print if key pressed
  if (key){
    Serial.print("Key Pressed : ");
    Serial.println(key);
  }
}

پس از آپلود کد ها بر روی آردوینو ، وارد محیط آردوینو IDE شوید . با فشردن هر کلید از کی پد مقدار آن نشان داده خواهد شد .

 

منبع : https://lastminuteengineers.com/arduino-keypad-tutorial/

Tags:
About Author: USER_4