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

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

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

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

 


نصب کتابخانه RBD_Timer.h


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

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

 

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

مراحل نصب کتابخانه در آردوینو - دیجی اسپارک

 


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


کتابخانه RBD_Timer بر پایه millis فعال است. به عبارت دیگر این کتابخانه جهت دریافت زمان و زمانبندی اجرای یک Task، از خروجی تابع millis استفاده می کند. همانطور که اطلاع دارید، تابع millis جهت دریافت زمان، از تایمر شماره ۱ میکروکنترلر استفاده می کند. بنابراین دقت نظر لازم را در این زمینه در نظر بگیرید. از طرفی دیگر، کتابخانه RBD_Timer، بر روی کلیه بردهای مورد پشتیبانی پلتفرم اردوینو، قابلیت اجرا دارد. به عبارت دیگر، این کتابخانه قابلیت اجرا روی کلیه بردهای آردوینو با معماری AVR و ESP را داشته و اصطلاحا مستقل از معماری است.

 


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


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

شرح ورودی تابع
این تابع، تابع سازنده کلاس کتابخانه است. در ورودی این تابع، زمان Interval قرار می گیرد. زمان ورودی به میلی ثانیه است. ورودی جهت تعین زمان INTERVAL Timer(unsigned long value)
این تابع می تواند زمان Interval را تعریف کند. به کمک این تابع و با فراخوانی آن در هر جای برنامه، می توان زمان Interval را تغییر داد. زمان ورودی به میلی ثانیه است. ورودی جهت تعیین زمان void setTimeout(unsigned long value)
این تابع تایمر را ریست کرده و شمارش را از ابتدا آغاز می کند. بدون ورودی void restart()
با فراخوانی این تابع، در صورتیکه تایمر زمان خود را سپری کرده باشد، true بر میگرداند. همچنین این تابع تایمر را ریست و شمارش را از ابتدا آغاز می کند. بدون ورودی    bool onRestart()
این تابع تعداد دفعاتی که تابع onRestart باید true برگرداند را در یک ثانیه، تعیین می کند. تعداد دفعات در ورودی تابع قرار می گیرد. ورودی جهت تعیین فرکانس void setHertz(int value)
این تابع شمارش را متوقف می کند. بدون ورودی void stop()
این تابع تایمر را بدون تغییر در زمان timeOut، منقضی می کند. بدون ورودی   void expire()
در صورتیکه تایمر در حال شمارش باشد، خروجی true خواهد شد. بدون ورودی bool isActive()
در صورتیکه تایمر شمارش خود را به پایان رسانده باشد، خروجی true خواهد شد. بدون ورودی   bool isExpired()
در صورتیکه تایمر فعال باشد، خروجی ture شده و سپس تا اتمام شمارش، منتظر باقی خواهد ماند. بدون ورودی bool onActive()
این تابع مدت زمان طی شده از شروع شمازش تایمر را در خروجی قرار می دهد. بدون ورودی       unsigned long getValue();
این تابع مدت زمان باقی مانده تا اتمام شمارش تایمر را در خروجی قرار می دهد. بدون ورودی unsigned long getInverseValue()
این تابع مدت زمان باقی مانده تا اتمام تایمر را به صورت درصد در خروجی نمایش می دهد. بدون ورودی unsigned long getInverseValue()

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

 


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


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

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

RBD::Timer timer;       //ااضافه کردن کلاس کتابخانه

void setup() {
  Serial.begin(115200);
  timer.setTimeout(3000);  //تنظیم زمان برای  Interval
  timer.restart(); //ریست تایمر
}

void loop() {
  if(timer.onRestart()) {  //سر ریز شدن تایمر
    Serial.println("Three seconds passed");
  }
}

 


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


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

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

 


جمع بندی


در مجموعه آموزش های تحلیل و بررسی کتابخانه های آردوینو، این قسمت را به یکی از مهم ترین و پرکابردترین کتابخانه های آردوینو اختصاص دادیم. کتابخانه RBD_Timer، یک کتابخانه به منظور زمانبندی است. این کتابخانه می تواند فرم بسیار ساده تری از تابع millis را پیاده سازی کند. در کنار این، کتابخانه RBD_Timer، دارای توابع مختلف و بسیاری جهت راه اندزای تایمر، کنترل تایمر و تنظیم Interval(اجرای کدها در بازه زمانی مشخص) است.

 

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

معین صابری

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

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

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

۲ دیدگاه