کتابخانه keypad، یکی از پرکاربردترین کتابخانه های آردویینو به شمار می رود. به کمک این کتابخانه می توانیم صفحه کلید های ماتریسی ۳*۴ و یا ۴*۴ را به سادگی به بردهای آردویینو متصل نماییم. صفحه کلیدهای ماتریسی یکی از ابزارهای بسیار پرکاربرد برای دریافت ورودی از کاربر است. این صفحه کلیدها در بسیاری از دستگاه ها نظیر کارتخوان، دستگاه های خودپرداز، گاو صندوق های دیجیتال و…. مورد استفاده قرار می گیرند. در این آموزش به بررسی کتابخانه Keypad.h، توابع و نحوه استفاده از آن در پروژه های آردویینو می پردازیم. در ادامه با مرجع تخصصی آردوینو به زبان فارسی ، دیجی اسپارک همراه باشید.
تعریف و نحوه نصب کتابخانه
کتابخانه ها یکی از ابزارهای کاربردی در برنامه نویسی به شمار می روند. به کمک این ابزار، از بازنویسی توابعی که پیشتر مورد استفاده قرار گرفته اند جلوگیری شده و حجم کدها کاهش خواهد یافت. به عنوان مثال، فرض کنید که یک تابع برای محاسبه خروجی یک سری فوریه نوشته اید. طبعا از این تابع در برنامه های گوناگون می شود. جهت جلوگیری از بازنویسی مجدد کدهای این تابع، آن را به صورت کتابخانه تبدیل کرده و فقط از تابع در برنامه خود استفاده خواهیم کرد.
#include <fourier.h> fourier data; void setup() { Serial.println(9600); } void loop() { data.calculate(); }
معمولا کتابخانه keypad به طور پیشفرض بر روی نرم افزار آردویینو نصب است. اما جهت اطمینان، ابتدا مطابق تصویر زیر، بر روی گزینه Tools و سپس Manage Libraries کلیک کنید.
پس از این مرحله، در منوی باز شده و در کادر جستجو، با تایپ عبارت keypad، کتابخانه های مختلفی را مشاهده می کنید. شما میتوانید کتابخانه مشخص شده در تصویر را انتخاب و سپس نصب کنید. در این آموزش نیز، کتابخانه مشخص شده مورد بررسی قرار گرفته است.
پس از نصب کتابخانه، نوبت به استفاده از آن می رسد. اما پیش از آن، می بایست به بررسی بردهای مورد پشتیبانی این کتابخانه و الزامات فنی آن بپردازیم. پس از این مرحله، به معرفی توابع کتابخانه که مهم ترین بخش آن است، می پردازیم.
الزامات فنی و برد های پشتیبانی شده
کتابخانه Keypad.h معرفی شده در این آموزش، برای کلیه بردهای آردویینو، قابل استفاده است. همچنین از این کتابخانه، با رعایت الزاماتی، می توان برای ماژول های ESP، استفاده نمود. با توجه به محدود بودن پایه های GPIO، این کتابخانه امکان سازگاری با تراشه های افزایش پایه، نظیر PCF8574 را داراست.
کتابخانه keypad قادر است تا از صفحه کلیدهای ماترسی ۴*۳ و ۴*۴ پشتیبانی نماید. همچنین این کتابخانه می تواند کلید فشار داده شده را به همراه مقدار اختصاص داده شده به آن(رقم یا عدد) را تشخیص دهد. همچنین این کتابخانه قادر است تا مدت زمان تاخیر فشرده شدن کلید(debouncing) را تنظیم نماید. در قسمت بعدی، به بررسی توابع این کتابخانه می پردازیم.
توابع کتابخانه keypad
در این قسمت به بررسی مهم ترین و کاربردی ترین توابع کتابخانه keypad آردوینو، می پردازیم. این توابع به همراه ورودی ها، در جدول زیر لیست شده اند.
برای استفاده از توابع فوق در برنامه، کتابخانه keypad می بایست به برنامه اضافه شود. درقسمت بعدی، به بررسی یک نمونه برنامه و نحوه استفاده از این کتابخانه، می پردازیم.
نحوه اجرای یک نمونه برنامه
پس از معرفی کتابخانه keypad و توابع آن، نوبت به اجرای یک نمونه برنامه می رسد. در زیر یک نمونه کد برای خواندن کلید از صفحه و نمایش آن در سریال مانیتور را مشاهده می نمایید.
#include <Keypad.h> const byte ROWS = 4; //صفحه کلید با چهار سطر const byte COLS = 3; //صفحه کلید با سه ستون char keys[ROWS][COLS] = { //تخصیص کاراکتر به کلیدها {'۱', '۲', '۳'}, {'۴', '۵', '۶'}, {'۷', '۸', '۹'}, {'*', '۰', '#'} }; byte rowPins[ROWS] = {9, 8, 7, 6}; //اتصال این پایه ها به سطرهاهای صفحه کلید byte colPins[COLS] = {5, 4, 3}; //تخصیص این پایه ها به ستون های صفحه کلید 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); //نمایش کلید Serial.flush(); } }
برای اتصال صفحه کلید مطابق کد فوق به آردویینو، به عنوان مثال آردویینو uno، مطابق مطابق فلش تصویر زیر، از راست به چپ، پایه های کی پد را به پایه های ۳ الی ۹ برد آردویینو متصل نمایید.
قطعات مورد نیاز
جمع بندی
در این آموزش به بررسی یکی از کتابخانه های پرکاربرد در آردویینو، کیپد پرداختیم. کتابخانه کیپد راه اندازی صفحه کلیدهای ماترسی را بسیار ساده می کند. این صفحه کلیدها که به صورت ۴*۳ و یا ۴*۴ و یا انواع دیگر در بازار موجود هستند، می توانند از کاربر ورودی های مختلف مثل شماره تلفن، رمز عبور و… را دریافت نمایند. کتابخانه keypad ضمن ساده سازی کار با صفحه کلیدها، سرعت اجرای پروژه ها را افزایش می دهند.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.