آموزش ارتباط آردوینو با صفحه کلید (کی پد – keypad )

آموزش ارتباط آردوینو با کی پد

آموزش ارتباط آردوینو با کی پد

 

ارتباط آردوینو با صفحه کلید  (کی پد – keypad )

آردوینو تابع های خیلی ساده ای برای ارتباط با صفحه کلید های ماتریسی داره، این صفحه کلید ها بسیار رایج هستن و در بسیاری از پروژ ها استفاده میشن.
چند نمونه از صفحه کلید هارو میتونید ببینید:

تشخیص پایه های کی پد  ( صفحه کلید ):

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

ابتدا سر های اهم متر رو به دو پایه ی اول وصل می کنیم و کلید هارو فشار میدیم تا اهم متر اتصال کوتاه رو نشون بده . اگر اتصال کوتاه نداشتیم ، یک سر اهم متر رو در پایه ی اول نگه می داریم و سر دیگر اهم متر رو یک پایه جلو می بریم و دوباره تمامی کلید هارو فشار میدیم تا کلید اتصال کوتاه رو پیدا کنیم.بعد از پیدا کردن اتصال کوتاه ، شماره ی پایه  رو بصورت سطری و ستونی یادداشت می کنیم . مثلا فرض کنیم با زدن کلید شماره ی 7 ، پایه های 1 و 5 اتصال کوتاه میشن که به صورت شکل زیر ، سطر و ستون اون رو یادداشت می کنیم و بعدش شماره پایه های تمامی سطر ها و ستون ها رو پیدا می کنیم.
مدارداخلی خاصی هم نداره و و شامل چند تا سیم میشه فقط:

مدار داخلی کی پد 4 در 4 4x4پایه های کی پد فلت - کی پد 4 در 4 - 4x4

قبل از هر چیز 34 کتابخانه ی پرکاربرد آردوینو رو دانلود کنید و در محل نصب نرم افزار آردوینو ، پوشه ی libraries رو Extract و جایگزین پوشه ی قبلی کنید.این کتابخونه ها توی پروژه های آردوینو ی سایت حتما استفاده شدن یا میشن:

دانلود کتابخانه آردوینو

توابع راه اندازی کی پد با آردوینو :

حالا میخوایم بریم سراغ توابع ، اول باید تعداد سطر ها و ستون های صفحه کلید رو مشخص کنیم و بعد شماره ی کلید هارو به شکل زیر توی یک آرایه ذخیره کنیم:

 

بعدش باید پایه های سطرها و ستون های صفحه کلید رو به پایه های دیجیتال آردوینو متصل کنیم که به شکل زیر تعریف میشن.

تابع void begin
این تابع مقدار دهی اولیه ی متغیر ها را انجام می ده.

ساختار کلی این تابع به شکل زیره:

و این تابع بالا نقشه ی صفحه کلید را با توجه به مقادیر داده شده برای آردوینو تعریف می کنه.

مثلا توی ارتباط سریال نرم افزاری هم اینکارو میکردیم.

بطور مثال توی پروژه ای که آخر آموزش قرار دادیم این کد رو به شکل زیر تعریف کردیم:

 

تابع char getKey

برای خواندن مقدار کلید زده شده ، تابع getKey رو استفاده کنیم.این تابع اگر دکمه‌ای فعال بشه ، مقدار true و در  صورتی که این اتفاق نیوفته مقدار false رو برمیگردونه

این تابع خیلی باحاله! میپرسین چرا؟ چون اصلا مانع اجرای بقیه خط های برنامه نمیشه و بقیه خطوط اجرا میشن حتی اگه طولانی مدت فشار بدیم!

 

دیدیم که برای هر صفحه کلید باید نام گذاری انجام بدیم ، پس وقتی گفته میشه تابع char getKey توجه کنید که منظور از Char نامی هست که برای keypad در تعریف void begin گذاشتین ، توی تابع void begin مثالی که زدم ، کی پد رو با اسم kbd تعریف کردم و مثال getKey رو هم با همین تعریف نوشتم. بقیه ی تابع ها هم به همین شکله ….

تابع char waitForKey

این تابع صبر میکنه تا کلید زده شه و تاهنگامی که کلیدی زده نشه ، سایر خطوط برنامه اجرا نمیشه.

تابع char getKey

این تابع مقدار کلید زده شده را برمیگردونه و برخلاف تابع قبلی برای خوندن کلید، اجرای برنامه  متوقف نمی شه.

 

تابع setHoldTime(unsigned int time)

این تابع مقدار تاخیر برحسب میلی ثانیه رو تعیین می کند که در آن، کلید باید در حالت فشرده باقی بماند تا حالت HOLD فعال شود.

 

تابع addEventListener(keypadEvent)

این تابع یک برنامه رو با  استفاده و از صفحه کلید فراخوانی می کنه یا اصطلاحا یک event رو اضافه میکنه .

مثل یک نوع اینتراپت عمل میکنه در واقع و باید مثل وقفه ها در آردینو برای اون بعد از حلقه loop یک تابع بنویسیم :

 

و در setup اون رو به آردوینو معرفی کنیم و توی حلقه ی loop هر جا لازم بود صداش بزنیم :

و در کد بالا در آکولاد های void keypadEvent برنامه ای رو که هنگام زدن کلید و اجرا شدن event میخوایم اجرا بشه رو مینویسیم.

این تابع در صورت استفاده شدن توی پروژه چند تا تابع زیر مجموعه هم داره که وقتی از Event استفاده میکنید قابل استفاده کردن هستن:

تابع KeyState getstate

این تابع وضعیت فعلی هر کلید رو نشون میده. این وضعیت ها عبارت اند  از :

زده نشده (IDLE)،

فشرده شده (PRESSED)،

رها شده (RELEASED)

و نگه داشته شده (HOLD)

مثال: توجه کنید این مثال با کانفیگ صفحه کلید 3 در 4 نوشته شده:

 

 

 

تابع Boolean keyStateChanged

در نسخه ی 2 با استفاده از این تابع می توانید از وضعیت تغییر کلید آگاه بشین. وقتی که کلید تغییر وضعیت بده مقدار true و زمان های دیگه مقدار False رو برمیگردونه.

 

و در آخر هم یک پروژه برای آموزش ارتباط آردوینو با کی پد که هر کلیدی زده بشه روی Lcd کاراکتری نمایش میده با شبیه سازی:

 

دانلود پروژه + شبیه سازی

حمیدرضا مودت

یک مهندس الکترونیک ، علاقه مند به یاد دادن و یاد گرفتن پیرامون دانش برق و الکترونیک

شما ممکن است این را هم بپسندید

4 پاسخ‌ها

  1. mahsa گفت:

    sسلام برای چنمایش اعداد کیبورد در دات ماتریس چیکار کنیم

  2. iman گفت:

    سلام کدام فایل در فایل زیپ مربوط به شبیه سازی هست؟
    چطور اجرا میشه؟
    ممنون

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *