⌨️ کیپد ۴×۴
کیپد ماتریسی ۴x۴ چیست و چطور با ۸ پایه ۱۶ کلید را بخوانیم؟ سطرها و ستونها، کتابخانه Keypad، ساخت قفل رمزی — با شبیهساز آنلاین رایگان فارسی.
کیپد ۴×۴ چیست؟
یک صفحهکلید کوچک با ۱۶ دکمه. اگر هر دکمه پایهی خودش را میخواست، ۱۶ پایهی آردوینو لازم بود — ولی با ترفند ماتریسی فقط ۸ پایه کافی است.
ترفند ماتریس
دکمهها در ۴ سطر و ۴ ستون چیده شدهاند. هر دکمه یک سطر را به یک ستون وصل میکند. آردوینو سطرها را یکییکی فعال میکند و میبیند کدام ستون جواب داد — از تقاطع آن دو میفهمد کدام دکمه فشرده شده. این کار آنقدر سریع تکرار میشود که انگار همه را همزمان میخواند.
هشت پایه
| پایه | نقش |
|---|---|
| R1–R4 | چهار خط سطر |
| C1–C4 | چهار خط ستون |
ترتیب پایهها روی فلت کانکتور معمولاً از چپ: سطرها بعد ستونها. اگر کلیدها اشتباه خوانده شدند، احتمالاً جای سطر و ستون عوض شده.
کد آردوینو
#include <Keypad.h>
const byte ROWS = 4, COLS = 4;
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};
byte colPins[COLS] = {5, 4, 3, 2};
Keypad pad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() { Serial.begin(9600); }
void loop() {
char k = pad.getKey();
if (k != NO_KEY) {
Serial.print("Key: ");
Serial.println(k);
}
}
getKey() هر فشار را فقط یک بار برمیگرداند و بقیهی اوقات NO_KEY میدهد. برای همین لازم نیست خودت دیبانس بنویسی — کتابخانه این کار را کرده.پروژه: قفل رمزی
رمز را در یک رشته جمع کن، با # تأیید بگیر و اگر درست بود سروو را بچرخان یا LED سبز را روشن کن. با * هم پاکش کن. یکی از بهترین پروژهها برای تمرین شرط و رشته.
اشتباهات رایج
- جابهجا بستن سطرها و ستونها — کلیدها اشتباه خوانده میشوند.
- فراموشکردن
#include <Keypad.h>. - مقایسهی نادرست با NO_KEY؛ سادهترین شکل درست
if (k)است.