ویژگی های صفحه کلید ماتریسی 4x3
کلیدها یک از پرکاربردترین المانها در الکترونیک هستند. با استفاده از سوئیچها کاربر میتواند با سیستم ارتباط برقرار کند. در حالت عادی هر کلید یک پایه دیجیتال میکروکنترلر را اشغال میکند. اما وقتی از ماژولهایی مانند کیپد 3 در 4 استفاده کنیم، میتوانیم پایههای اشغالی میکروکنترلر را کاهش دهیم. با استفاده از این ماژول می توانیم از 12 سوئیچ، با اشغال تنها 7 پایه میکروکنترلر استفاده کنیم.
نحوه عملکرد
این ماژول مانند یک ماتریس 4×3 شامل 4 ردیف و 3 ستون میباشد که جمعا برابر 12 عدد سوئیچ است. 4 ردیف را به عنوان ورودی و 3 ستون را به عنوان خروجی ماژول در نظر میگیریم. هر سوئیچ از یک سمت به یک ردیف و از سمت دیگر به یک ستون وصل است. برای مثال اگر سوئیچ شماره 1 را فشار دهیم، ورودی این ردیف در خروجی ستون آن ذخیره میشود. عکس زیر مدار داخلی این کیپد را نشان میدهد.
معرفی پایه های (Pinout) صفحه کلید ماتریسی 4x3
کیپد 4×3 دارای 9 پایه به شرح زیر است:
- ROW1: پایه ورودی – ردیف 1
- ROW2: پایه ورودی – ردیف 2
- ROW3: پایه ورودی – ردیف 3
- ROW4: پایه ورودی – ردیف 4
- COL1: پایه خروجی – ستون 1
- COL2: پایه خروجی – ستون 2
- COL3: پایه خروجی – ستون 3
- :NC پایه بدون استفاده
پین اوت (Pinout) این ماژول را می توانید در تصویر زیر مشاهده کنید.
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزارهای مورد نیاز
راه اندازی صفحه کلید ماتریسی 4x3 با آردوینو
گام اول: سیم بندی
مطابق مدار زیر،کیپد را به آردوینو وصل کنید.
گام دوم: نصب کتابخانه
مانند شکل زیر، در بخش کتابخانهی آردوینو عبارت Keypad را سرچ و آن را نصب کنید.
گام سوم: کد
کد زیر را روی برد آردوینو آپلود کنید.
/*
4x3-Membrance-Matrix-Keypad
modified on 15 Nov 2020
by Amir Mohammad Shojaee @ Electropeak
Home
based on Keypad Arduino Library Examples
*/
#include <Keypad.h>
const byte ROWS = 4; // Define the number of rows on the keypad
const byte COLS = 3; // Define the number of columns on the keypad
char keys[ROWS][COLS] = { // Matrix defining character to return for each key
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = {8, 7, 6, 5}; //connect to the row pins (R0-R3) of the keypad
byte colPins[COLS] = {4, 3, 2}; //connect to the column pins (C0-C2) of the keypad
//initialize an instance of class
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
Serial.begin(9600);
}
void loop(){
char key = keypad.getKey();
if (key){ // If key is pressed, send it to the Serial Monitor Window
Serial.println(key);
}
}
در ابتدای برنامه کتابخانه Keypad پیوست شده است. سپس بایستی تعداد ستون و ردیف کیپد را وارد کنید. بعد از آن یک آرایه دو بعدی شامل ستونها و ردیف ها برای نمایش کاراکتر هر سوئیچ تعریف میشود. دقت شود که در این برنامه فقط کاراکترها نمایش داده میشوند. در گام بعدی در دستور Keypad پنج پارامتر آن تعریف میشود. سپس دستور ()getkey چک میکند که کدام یک از سوئیچها فشرده میشود. در آخر نیز کاراکتر سوئیچ فشرده شده در Serial Monitor ظاهر میگردد.
خروجی کد به شکل زیر است. همانطور که مشاهده میکنید سوئیچ اول تا آخر به ترتیب فشرده شده و کاراکتر مخصوص هر کدام بر روی Serial Monitor ظاهر شده است.