کتابخانه ها یکی از مهم ترین و پرکابردترین ابزارهای نرم افزاری به شمار می رود. به کمک این ابزار می توان سرعت توسعه پروژه را افزایش داد. در این آموزش به تحلیل و بررسی یکی از مهم ترین کتابخانه های آردوینو می پردازیم. این کتابخانه به طراح سیستم سخت افزاری کمک می کند تا از بابت اتصال کلیدها به ورودی دغدغه ای نداشته باشد. این کتابخانه به کاربر کمک می کند تا کلیدهای دیجیتال را مدیریت کند. در این آموزش مطابق رویه معمول تحلیل کتابخانه ها، ابتدا به نحوه نصب کتابخانه خواهیم پرداخت. پس از این به الزامات و نکات فنی کتابخانه خواهیم پرداخت. در ادامه این مورد، به تحلیل و بررسی توابع کلیدی و کاربردی کتابخانه خواهیم پرداخت. در ادامه با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
مزایای کتابخانه Bugtton.h
همانطور که اطلاع دارید، کتابخانه ها یکی از مهم ترین ابزارها در طراحی سیستم های مختلف به شمار می روند. بسیاری از کتابخانه ها توابع مورد نیاز برنامه نویس را در خود جای داده اند. بدین ترتیب نیازی به بازنویسی مجدد آن ها نیست. کتابخانه Bugtton.h نیز یک کتابخانه جهت مدیریت کلیدهای متصل به ورودی آردوینو است. این کتابخانه دارای قابلیت های فراوانی است. توابع این کتابخانه می توانند این موارد را انجام دهند.
۱-تشخیص فشرده شدن کلید
۲-تشخیص رها شدن کلید
۳-تشخیص مدت زمان فشرده شدن کلید
بدین ترتیب به کمک این کتابخانه می توانیم به سادگی پروژه های مبتنی بر کلید را اجرا کنیم. به عنوان مثال در بسیاری از پروژه ها نظیر رله تایمرها و ترموستات ها، با فشردن چند ثانیه ای یک دکمه دستگاه وارد مد تنظیمات می شود. در یکسری دیگر از دستگاه ها تا زمانیکه یک کلید را فشار دهید، عملیاتی اجرا خواهد شد. بدین ترتیب به کمک این کتابخانه روال طراحی و توسعه پروژه به شدت تسریع خواهد یافت. در ادامه این بحث راجع به این کتابخانه و توابع کلیدی آن بیشتر خواهیم گفت.
نصب کتابخانه Bugtton.h
به منظور استفاده از کتابخانه، ابتدا می بایست آن را نصب کنیم. در این قسمت به نصب کتابخانه با جستجو در مخازن آردوینو می پردازیم. به همین منظور، ابتدا در نرم افزار آردوینو بر روی گزینه Tools و سپس Manage Libraries را کلیک کنید. پس از کلیک بر روی این گزینه، با تصویر زیر رو به می شوید. این منو کتابخانه های در دسترس را به شما نشان می دهد. شما نیز می توانید با جستجوی نام کتابخانه مورد نظر خود، آن را در مخازن آردوینو یافته و سپس نصب کنید.
مطابق فلش مشخص شده در تصویر فوق، در کادر جستجو عبارت Bugtton را تایپ کنید. پس از چند لحظه با تصویر زیر رو به رو می شوید. در این مرحله، کتابخانه را با کلیک بر روی گزینه install، نصب کنید.
الزامات و نکات فنی کتابخانه Bugtton.h
پس از نصب کتابخانه، نوبت به بررسی الزامات و نکات فنی آن می رسد. کتابخانه Bugtton.h یک کتابخانه بر مبنای معماری میکروکنترلرهای AVR است. این کتابخانه به طور خاص برای پردازنده ATMEGA328P طراحی شده است. بدین ترتیب از این کتابخانه تنها می توان در بردهای آردوینو UNO استفاده نمود. به عبارت دیگر، این کتابخانه بر روی سایر بردها نظیر MEGA2560 و سایر معماری ها نظیر XTENSA و ARM قابلیت اجرا نخواهد داشت.
توابع کلیدی و کاربردی کتابخانه
پس از آشنایی با الزامات فنی، نوبت به تحلیل و بررسی توابع کلیدی و کاربردی می رسد. جدول زیر لیست توابع را به همراه توضیح هر یک، نمایش می دهد.
شرح | ورودی ها | تابع |
این تابع در حقیقت تابع سازنده کلاس کتابخانه محسوب می شود. ورودی اول این تابع تعداد کلیدها و ورودی دوم آرایه ای از شماره کلید ها را در خود جای می دهد. همچنین ورودی سوم مدت زمان دیبانس را تعیین می کند. | ورودی اول تعداد کلید ها
ورودی دوم آرایه کلیدها ورودی سوم مدت زمان دیبانس
|
Bugtton(const uint8_t a, const uint8_t *b, uint8_t dt) |
این تابع مدت زمان دیبانس را تعیین می کند. در ورودی تابع زمان دیبانس قرار می گیرد. | ورودی جهت تعیین مدت زمان دیبانس | void debounceTime(uint16_t a) |
در صورتیکه بخواهید پایه ای را به صورت مستقل به عنوان ورودی تعریف کنید، این تابع کارگشاست. این تابع ورودی نخست را به عنوان شماره پایه و ورودی دوم را به عنوان مد پایه تعریف می کند.
توجه: مد پایه یا INPUT یا INPUT_PULLUP تعریف می گردد |
ورودی نخست شماره پایه
ورودی دوم مد پایه |
void setMode(pin, mode) |
این تابع در loop فراخوانی شده تا تغییرات جدید در توابع را اعمال نماید. | بدون ورودی | void update() |
این تابع مدت زمان فشرده شدن یا رها شدن کلید متصل به شماره پایه قرار گرفته در ورودی را در خروجی خود قرار می دهد. | وردی جهت تعیین شماره پایه | unsigned long duration(button_i) |
خروجی این تابع زمانی TRUE خواهد شد که شماره پایه قرار گرفته در ورودی از حالت فشار داده نشده به حالت فشار داده شده تغییر وضعیت دهد. | ورودی جهت تعیین شماره پایه | bool fell(button_i) |
خروجی این تابع زمانی TRUE خواهد شد که شماره پایه قرار گرفته در ورودی از حالت فشار داده شده به حالت فشار داده نشده تغییر وضعیت دهد. | ورودی جهت تعیین شماره پایه | bool rose(button_i) |
در صورتیکه کلید فشار داده نشده باشد خروجی TRUE خواهد شد. | ورودی جهت تعیین شماره پایه | bool up(button_i) |
در صورتیکه کلید فشار داده شده باشد خروجی TRUE خواهد شد. | ورودی جهت تعیین شماره پایه | bool held(button_i) |
این تابع تنها یکبار در صورتیکه برای مدت زمان تعیین شده در ورودی دوم پایه تعیین شده در ورودی اول را فشار دهیم، خروجی TRUE تولید خواهد کرد. | ورودی جهت تعیین شماره پایه و زمان | bool heldUntil(button_i, time) |
این تابع تنها یکبار در صورتیکه برای مدت زمان تعیین شده در ورودی دوم پایه تعیین شده در ورودی اول را فشار نداده باشیم، خروجی TRUE تولید خواهد کرد. | ورودی جهت تعیین شماره پایه و زمان | bool upUntil(button_i, time) |
توجه: در آرایه مربوط به شماره های پایه، در صورتیکه عدد منفی درج شود یعنی پایه به صورت ورودی پول داون شده است. به عنوان مثال عدد ۵- یعنی پایه شماره ۵ به عنوان ورودی اما منفی پول داون است. در ادامه، برای اجرای مثال های کتابخانه، در نرم افزار آردوینو از منوی File->Examples->simple را انتخاب کرده و مثال را اجرا کنید.
لوازم مورد نیاز
لینک خرید انواع برد آردوینو، کلیک کنید
لینک خرید کلید فشاری، کلیک کنید
جمع بندی
در مجموعه آموزش های تحلیل و بررسی کتابخانه های آردوینو، این قسمت را به یکی از کتابخانه مهم اختصاص دادیم. کتابخانه Bugtton یکی از کتابخانه های مهم در زمینه واسط کاربری است. به کمک این کتابخانه می توانید کلیدهای فشاری را مدیریت کنید. بدین ترتیب به کمک توابع این کتابخانه، مدیریت کلیدها تسهیل شده و رورال توسعه پروژه تسریع خواهد یافت. در این آموزش ابتدا به معرفی کتابخانه پرداختیم. پس از آن نصب و بررسی الزامات فنی را از نظر گذراندیم. در نهایت با تحلیل توابع کلیدی، نحوه استفاده از توابع را در مثال های عملی مشاهده کردیم.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.