کتابخانه در آردوینو: ساختن کتابخانه (Library) در Arduino (آردوینو)

محتوا

ساختن کتابخانه (Library) در Arduino (آردوینو)

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

  1. هر بار لازم نیست توابع رو از اول بنویسید.
  2. همه توابع در قالب یک کتابخانه جمع آوری و سازماندهی می شوند.
  3. به راحتی می توانید در اختیار دیگران قرار بدید.
  4. و……

شروع ساختن یک کتابخانه ساده در آردوینو

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

C:\Users\your-username\Documents\Arduino\libraries

 برای نوشتن کتابخانه نیاز به دو فایل با پسوند h و cpp می باشد که در فایل با پسوند h (header) کلاس و اعلان های توابع رو تعریف می کنید و در فایل cpp بدنه توابع رو تعریف می کنید حالا دو فایل test.h و test.cpp رو در پوشه ایجاد کنید. بعد آردوینو رو اجرا کنید و کتابخانه رو همانند تصویر زیر در خط اول وارد و فراخوانی کنید سپس کامپایل کنید تا از صحت مراحل فوق اطمینان حاصل کنید.

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

حالا دو کتابخانه زیر رو در خط اول فایل h وارد کنید:

#include <SoftwareSerial.h>
#include "Arduino.h"

بعد کلاس رو تعریف کنید:

class testlib
{
 public:
  //توابعی که در همه جا میتوان استفاده کرد
 private:
  //توابعی که فقط در خود کتابخانه می شه استفاده کرد
};

توی این فایل شما فقط اعلان های توابع رو تعریف می کنید و بدنه توابع رو در فایل cpp ایجاد می کنید. حالا مثلا ایجاد من می خوام یه تابع تعریف کنید که با ارسال کلمه hello در سریال به میکرو یا ماژول کلمه hi رو به ما برگردونه اول باید توی قسمت public اعلان های توابع رو تعریف کنید به عنوان مثال

testlib(int rxPin, int txPin);
void check(String comm);

توجه کنید که در خط اول یک نوع تعریف شده است و نام این نوع باید برابر با نام کلاس باشد و در قسمت private هم یه پورت به صورت نرم افزار تعریف کنید مثل زیر (اسم پورت رو اینجا TPORT گذاشتم شما هر اسمی رو می تونید بزارید ولی توجه کنید که کامپایلر به بزرگ و کوچک بودن حروف حساس است)

SoftwareSerial * TPORT;

بعد میریم سراغ فایل cpp و سه خط زیر رو اضافه می کنید.

#include <SoftwareSerial.h>
#include "Arduino.h"
#include "test.h"

سپس بدنه توابع رو اضافه کنید….

testlib::testlib(int txPin, int rxPin) {
    TPORT = new SoftwareSerial(rxPin, txPin);
    TPORT->begin(9600);
}

void testlib::check(String comm) {
 
}

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

دقت کنید که testlib نام کلاسی هست که اعلان های توابع در آن تعریف شده و باید با 2 کالن قبل از تابع قرار بگیره در تابع اول که config نام داره و در بدنه برنامه می توانیم استفاده کنیم ، TPORT رو می تونیم به صورت نرم افزاری پایه های tx و rx رو به دلخواه تعیین کنیم. و در خط بعدش پورت روی باود ریت 9600 تنظیم شده و باز می شود در تابع دوم دستورات دلخواه رو می نویسیم ، به عنوان مثال کدهای زیر رو به تابع اضافه کنید:

if (TPORT->available()){
        String str = TPORT->readString();
        if (str == comm){
           TPORT->println("hi");
        }
}

توی چند خط کد بالا گفتیم اگه به بافر پورت سریال چیزی ارسال شد مقدار اونو در متغیر str بریز و در یک شرط گفتیم اگر مقدار str برابر با comm (که مقدار تعیین شده توسط شما در بدنه برنامه است) بود رشته hi رو به پورت سریال ارسال کن حالا به آردوینو برید و قبل از تابع setup خط زیر رو اضافه کنید:

testlib serial(1, 3);

با این خط serial رو از نوع testlib که پورت سریال تعریف شده قرار می دید و پایه های tx و rx رو هم مشخص می کنید. در حلقه loop هم خط زیر رو اضافه کنید و بعد برنامه رو کامپایل سپس آپلود کنید ، تست کنید.

serial.check("hello");

بعد از تست کدها برنامه رو با نام دلخواه ذخیره کنید و در پوشه ایی به نام examples در پوشه کتابخانه test قرار بدید تا نمونه کد شما در آردوینو به قسمت Examples اضافه بشه. شاید نیاز باشه یکبار آردوینو رو ببندید بعد باز کنید کتابخانه رو اینجا می تونید دانلود کنید.

0 0 votes
امتیازدهی به مقاله
بخش نظرات
مشترک شوید
Notify of
guest
2 نظرات
قدیمی ترین
جدیدترین بیشترین آرای
Inline Feedbacks
View all comments
dehghan13
dehghan13
8 years ago

سلام.

اگر مطالب بالا به صورت فایل pdf اراعه شود برای چاپ و مطالعه خیلی بهتر است . ممنون

حسین
حسین
5 years ago

سلام .
استفاده کردم.
سپاس.

2
0
Would love your thoughts, please comment.x
×
×

سبد خرید