تحلیل کتابخانه

تحلیل و بررسی کتابخانه JC_Button.h

jc_button-arduino-library-digispark
نوشته شده توسط معین صابری

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

 


نصب کتابخانه JC_Button


به منظور استفاده از کتابخانه، ابتدا می بایست آن را نصب کنیم. در این قسمت به نصب کتابخانه با جستجو در مخازن آردوینو می پردازیم. به همین منظور، ابتدا در نرم افزار آردوینو بر روی گزینه Tools و سپس Manage Libraries را کلیک کنید. پس از کلیک بر روی این گزینه، با تصویر زیر رو به می شوید. این منو کتابخانه های در دسترس را به شما نشان می دهد. شما نیز می توانید با جستجوی نام کتابخانه مورد نظر خود، آن را در مخازن آردوینو یافته و سپس نصب کنید.

روش نصب کتابخانه PCF8574.h - دیجی اسپارک

 

مطابق فلش مشخص شده در تصویر فوق، در کادر جستجو عبارتJC_Button را تایپ کنید. پس از چند لحظه با تصویر زیر رو به رو می شوید. در این مرحله، کتابخانه را با کلیک بر روی گزینه install، نصب کنید.

 


الزامات و نکات فنی کتابخانه JC_Button.h


پس از نصب کتابخانه، نوبت به بررسی الزامات و نکات فنی می رسد. در ابتدا توجه داشته باشید که کتابخانه های قرار گرفته بر روی گیت هاب، گارانتی نداشته و مسئولیت استفاده بر عهده شخص است. بنابراین بهتر است یکبار خود سورس کد کتابخانه را ارزیابی و تحت تست، از صحت عملکرد آن اطمینان حاصل کنید. در رابطه با کتابخانه JC_Button، این کتابخانه بر مبنای تراشه AVR توسعه یافته است. به عبارت دیگر، کتابخانه تنها بر روی بردهای آردوینو با معماری AVR قابل اجراست. کتابخانه JC_Button، بر روی بردهای زیر می تواند نصب و اجرا شود.

  • UNO
  • NANO
  • MEGA
  • MICRO

 


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


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

شرح ورودی ها تابع
این تابع در حقیقت تابع سازنده کلاس کتابخانه است.  ورودی اول شماره پایه را تعیین می کند. از ورودی دوم به بعد دارای مقدار پیشفرض بوده که می توانید هنگام فراخوانی، از آن ها صرف نظر کرده یا مقدار مد نظر خود را اعمال کنید. ورودی اول شماره پایه

ورودی دوم مدت زمان دیبانس

ورودی سوم تعیین پول آپ بودن یا نبودن

ورودی چهارم LOW شدن هنگام فشار دادن کلید

 

Button(uint8_t pin, uint32_t dbTime=25, uint8_t puEnable=true, uint8_t invert=true)
این تابع ارتباط با کلید را برقرار می سازد. بدون ورودی void begin()
این تابع وضعیت کلید را می خواند. خروجی در صورت فشرده شدن true و در صورت رها شدن false خواهد بود. بدون ورودی   bool read()
در صورتیکه کلید فشرده شده باشد، خروجی این تابع true خواهد بود. بدون ورودی bool isPressed()
در صورتیکه کلید رها شده باشد، خروجی true خواهد شد. بدون ورودی   bool isReleased()
این تابع، در صورتیکه کلید برای مدت زمان تعیین شده در ورودی فشار داده شده باشد، خروجی true تولید خواهد کرد. ورودی جهت تعیین زمان bool pressedFor(uint32_t ms)
این تابع، در صورتیکه کلید برای مدت زمان تعیین شده در ورودی رها شده باشد، خروجی true تولید خواهد کرد. ورودی جهت تعیین زمان   bool releasedFor(uint32_t ms)
این تابع در صورتیکه بین دو بار فراخوانی تابع read کلید فشرده شده باشد، خروجی true تولید خواهد کرد. بدون ورودی bool wasPressed()
این تابع در صورتیکه بین دو بار  فراخوانی تابع read کلید رها شده باشد، خروجی true تولید خواهد کرد. بدون ورودی bool wasReleased()
این تابع آخرین مدت زمان تغییر وضعیت کلید را در خروجی خود قرار می دهد. بدون ورودی uint32_t lastChange()

 

 پس از آشنایی با توابع کلیدی و کاربردی، نوبت به اجرای یک نمونه برنامه می رسد. قسمت بعد به این موضوع اختصاص دارد.

 


اجرای یک نمونه برنامه


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

#include <JC_Button.h>          //اضافه کردن کلاس کتابخانه

const byte
    BUTTON_PIN(7),              // پایه ورودی
    LED_PIN(13);                // چراغ LED روی برد

Button myBtn(BUTTON_PIN);       // ایجاد شی از کلاس کتابخانه

void setup()
{
    myBtn.begin();              // راه اندازی کتابخانه
    pinMode(LED_PIN, OUTPUT);   // تعیین پایه خروجی
}

void loop()
{
    static bool ledState;       // تعیین وضعیت پایه
    myBtn.read();               // خواندن کلید

    if (myBtn.wasReleased())  //ر صورت فشرده شدن کلید
    {
        ledState = !ledState;
        digitalWrite(LED_PIN, ledState);  //تغییر وضعیت کلید
    }
}

 


لوازم مورد نیاز


لینک خرید انواع برد آردوینو، کلیک کنید

 


جمع بندی


در مجموعه آموزش های تحلیل و بررسی کتابخانه های آردوینو، این قسمت را به یکی از مهم ترین و پرکابردترین کتابخانه های آردوینو اختصاص دادیم. کتابخانه JC_Button، یک کتابخانه کاملا کاربردی در زمینه راه کار با کلیدها به شمار می رود. به کمک این کتابخانه می توانید به سادگی، برنامه های تعاملی با کاربر را توسعه دهید. در این آموزش مطابق رویه معمول، ابتدا نصب و الزامات کتابخانه بررسی شد. سپس در ادامه به تحلیل و بررسی توابع کلیدی و کاربردی پرداختیم. در نهایت با ارایه مثال، آموزش را به پایان رساندیم.

 

درباره نویسنده

معین صابری

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

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه