
سلام! اگه تازه داری با آردوینو کار میکنی یا میخوای یه پروژه باحال با کیپد راه بندازی، این آموزش برات عالیه! تو این راهنما، قدم به قدم یاد میگیری چطور کیپد 3×4 یا 4×4 رو به آردوینو وصل کنی، کد بنویسی و حتی مشکلات احتمالی راه اندازی کیپد با آردوینو رو برطرف کنی.
این آموزش با لحن ساده و صمیمی سعی کردم همهچیز رو واضح توضیح بدم. اگه مبتدی هستی، نگران نباش! همهچیز رو از صفر توضیح میدم. بریم شروع کنیم!
آردوینو و کیپد چیه؟
آردوینو چیه؟ آردوینو یه برد الکترونیکیه که مثل یه مغز کوچیک برای پروژههای الکترونیکی عمل میکنه. میتونی باهاش سنسورها، دکمهها و ماژولهایی مثل کیپد رو کنترل کنی. برای اطلاعات بیشتر درباره آردوینو، این مقاله رو بخون: مقایسه بردهای آردوینو.
سریال مانیتور چیه؟ سریال مانیتور یه ابزار تو نرمافزار Arduino IDEه که نشون میده بردت چه اطلاعاتی داره میفرسته. مثلاً تو این پروژه میتونی ببینی کدوم دکمه رو فشار دادی!
پینهای دیجیتال چیه؟ پینهای دیجیتال روی برد آردوینو مثل سوئیچهای روشن/خاموش کار میکنن. میتونی ازشون برای خوندن سیگنالهای کیپد یا کنترل قطعات دیگه استفاده کنی.
کیپد چیه؟ کیپد ماتریسی یه صفحهکلید سادهست که دکمههاش بهصورت ردیف و ستون مرتب شدن. وقتی یه دکمه رو فشار میدی، یه ردیف و ستون به هم وصل میشن و آردوینو میفهمه کدوم دکمه زده شده.
کیپدها انواع مختلفی دارن، اما توی این پروژه میخوایم با هم بریم سراغ کیپدهای ممبرین مدل 3×4 و 4×4 و یاد بگیریم چطوری میتونیم اونها رو راهاندازی و استفاده کنیم.
کیپدهای ممبرین یه جور صفحه کلیدن که جنسشون از یه لایه نازک و منعطفه و توی سایزهای مختلف مثل 1×4، 3×4، 4×4 و… تو بازار پیدا میشن. جالب اینجاست که فرقی نمیکنه سایزشون چقدره، همشون تقریبا یه جور کار میکنن.
یکی از بخشهای باحال این کیپدها اینه که پشتشون یه برچسب چسبدار دارن. کافیه اون کاغذ روی چسب رو برداری، بعدش میتونی کیپد رو خیلی راحت به هر جایی که خواستی بچسبونی و تو پروژههات استفاده کنی. خیلی کاربردیه!
اگه نمیدونی Arduino IDE چیه، مقاله استفاده از IDE آردوینو رو بخون تا با نرمافزار و نصبش آشنا بشی.

مقایسه کیپد 3×4 و 4×4
برای انتخاب کیپد مناسب، این جدول رو ببین:
| ویژگی | کیپد 3×4 | کیپد 4×4 |
|---|---|---|
| تعداد دکمهها | 12 | 16 |
| تعداد پینها | 7 (3 ردیف + 4 ستون) | 8 (4 ردیف + 4 ستون) |
| کاربردها | پروژههای ساده مثل رمز عبور | پروژههای پیچیدهتر مثل ماشینحساب |
| قیمت تقریبی | ارزانتر | کمی گرانتر |

نحوه کار و نحوه اسکن کردن
نحوه عملکرد کیپدهای 3×4 و 4×4 خیلی ساده و جالبه. وقتی یکی از دکمهها رو فشار میدیم، یه خط از سطرها به یه خط از ستونها وصل میشه. مثلا اگه دکمه ۴ رو بزنی، طبق انیمیشنهایی که معمولا تو آموزشها هست، خط مربوط به سطر دوم به ستون اول وصل میشه.
در واقع با فشار هر کلید، مسیر ارتباطی بین یه سطر و یه ستون برقرار میشه و همین موضوع به ما کمک میکنه تا بفهمیم کدوم کلید زده شده.
برای اینکه بتونیم این کلیدها رو بخونیم، میکروکنترلر شروع میکنه به اسکن کردن خطوط. روش کار به این شکله:
-
اول، پینهای مربوط به سطرها رو خروجی در نظر میگیریم و ستونها رو به عنوان ورودی تعریف میکنیم.
-
بعد یکییکی به سطرها مقدار HIGH میدیم.
-
همزمان بررسی میکنیم که توی کدوم ستون، سیگنال تغییر کرده.
-
اگه ستون موردنظر هنوز LOW باشه یعنی دکمهای تو اون ردیف فشرده نشده.
-
ولی اگه اون ستون HIGH بشه، یعنی اتصال برقرار شده و یه دکمه از اون سطر زده شده.
-
حالا با دونستن شماره اون سطر و ستون، بهراحتی میفهمیم کدوم کلید فشرده شده.
این روش خیلی سبک، سریع و کاربردیه و تو همه کیپدهای ماتریسی به همین شکل جواب میده.

اتصالات سختافزاری
برای وصل کردن کیپد به آردوینو، پینهای کیپد رو به پینهای دیجیتال آردوینو وصل کن:
- کیپد 4×4:
- ردیفها (Row): پینهای 2، 3، 4، 5
- ستونها (Column): پینهای 6، 7، 8، 9
- کیپد 3×4:
- ردیفها: پینهای 2، 3، 4
- ستونها: پینهای 5، 6، 7، 8
نکته مهم: برای کاهش نویز، میتونی مقاومت 10 کیلواهم رو بین هر پین و زمین (GND) وصل کنی.

نصب کتابخانه Keypad
برای راحتتر شدن کار با کیپد، کتابخانه Keypad رو نصب کن:
- Arduino IDE رو باز کن.
- از منوی Sketch > Include Library > Manage Libraries برو.
- عبارت “Keypad” رو سرچ کن و کتابخانه Keypad نوشته Mark Stanley و Alexander Brevig رو نصب کن.
کد کیپد 4×4 با سریال مانیتور

#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {5, 4, 3, 2};
byte colPins[COLS] = {9, 8, 7, 6};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
Serial.begin(9600);
}
void loop() {
char key = keypad.getKey();
if (key) {
Serial.println(key);
}
}
توضیحات:
- آرایه
keysکاراکترهای دکمهها رو تعریف میکنه. rowPinsوcolPinsپینهای آردوینو رو مشخص میکنن.- تابع
keypad.getKey()دکمه فشار دادهشده رو میخونه.
کد کیپد 3×4 با سریال مانیتور





#include <Keypad.h>
const byte ROWS = 3;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'}
};
byte rowPins[ROWS] = {5, 4, 3};
byte colPins[COLS] = {9, 8, 7, 6};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
Serial.begin(9600);
}
void loop() {
char key = keypad.getKey();
if (key) {
Serial.println(key);
}
}
استفاده از وقفه برای خواندن سریعتر
برای اینکه کیپد سریعتر و بهینهتر کار کنه، میتونی از وقفه (Interrupt) استفاده کنی. این روش باعث میشه آردوینو فقط وقتی دکمهای فشار داده شد، واکنش نشون بده:





#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {5, 4, 3, 2};
byte colPins[COLS] = {9, 8, 7, 6};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
Serial.begin(9600);
keypad.addEventListener(keypadEvent);
}
void loop() {
keypad.getKey();
}
void keypadEvent(KeypadEvent key) {
Serial.print("Key Pressed: ");
Serial.println(key);
}
چرا وقفه بهتره؟ بهجای چک کردن مداوم کیپد، فقط وقتی دکمهای زده میشه، کد اجرا میشه و این باعث صرفهجویی تو مصرف پردازش میشه.
نمایش دکمهها روی LCD
میتونی کیپد رو با یه LCD 16×2 ترکیب کنی تا کاراکترهای دکمهها رو نمایش بده. برای اطلاعات بیشتر درباره LCD، این مقاله رو ببین: اتصال LCD کاراکتری به آردوینو.





#include <Keypad.h>
#include <LiquidCrystal.h>
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {5, 4, 3, 2};
byte colPins[COLS] = {9, 8, 7, 6};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
void setup() {
lcd.begin(16, 2);
lcd.print("Enter Key:");
}
void loop() {
char key = keypad.getKey();
if (key) {
lcd.setCursor(0, 1);
lcd.print(key);
}
}
تست پروژه راه اندازی کیپد با آردوینو
مراحل تست:
- کد رو تو Arduino IDE کپی کن.
- برد آردوینو رو به USB وصل کن.
- کد رو آپلود کن.
- سریال مانیتور (Ctrl+Shift+M) رو باز کن و سرعت باود رو روی 9600 تنظیم کن.
- دکمههای کیپد رو فشار بده و خروجی رو تو سریال مانیتور ببین.


مشکلات رایج و راهحلها
اگه پروژهت کار نکرد، این موارد رو چک کن:
- کیپد هیچی نشون نمیده؟ اتصالات پینها رو دوبار چک کن. ممکنه پینهای ردیف و ستون رو اشتباه وصل کرده باشی.
- کاراکترها اشتباه چاپ میشن؟ آرایه
keysرو با چیدمان واقعی کیپدت مقایسه کن. بعضی کیپدها چیدمان متفاوتی دارن. - خروجی پر از نویزه؟ مقاومتهای 10 کیلواهم پولداون رو بین پینها و GND وصل کن.
- کد آپلود نمیشه؟ مطمئن شو برد و پورت درست انتخاب شدن (بخون: استفاده از IDE آردوینو ).
نکات کاربردی آردوینو
- برای پروژههای ساده، میتونی کیپد رو با LED ترکیب کنی (بخون: چشمک زدن LED با آردوینو یا راهاندازی LED RGB با آردوینو).
- کیپد رو میتونی برای قفل دیجیتال یا ماشینحساب ساده استفاده کنی.
- اگه با زبان C آشنا نیستی، این مقاله رو بخون: آشنایی با ساختار زبان C.
جمعبندی راه اندازی کیپد با آردوینو
تا اینجا یاد گرفتی چطور کیپد 3×4 و 4×4 رو به آردوینو وصل کنی، با سریال مانیتور و LCD کار کنی و حتی از وقفه برای بهینهسازی استفاده کنی. حالا میتونی پروژههای باحالی مثل قفل رمزدار یا کنترل دستگاههای خونه بسازی. فکر میکنی اولین پروژهت با کیپد چی قراره باشه؟ تو نظرات بگو!
اگر سولی داشتی راجب آموزش میتونی در بخش نظرات برامون بنویسی ، تا همکاران ما در کمترین زمان ممکن بهت جواب بدن.
باکس دانلود
راهنمای دانلود :
- برای دانلود فایل های پیوستی ابتدا در حساب کاربری خود ورود یا ثبت نام کنید.
- در صورت عدم دانلود فایل پیوست شده می توانید در قسمت گزارش خرابی لینک دلیل عدم دانلود را شرح دهید و از ما امتیاز دریافت کنید .
- تمامی فایل های پیوست شده متعلق به سایت ربات افزار می باشد و نشر آن به هر نحوه، قانونی و شرعی اشکال دارد.
_______ _______







































