نوشتن کتابخانه برای آردوینو (قسمت اول)
نوشتن کتابخانه برای آردوینو (قسمت اول)
پنج شنبه, 28 دی 1396 ساعت 19:47
این آموزش توضیح میدهد که چگونه برای آردوینو یک کتابخانه بسازیم. این آموزش با یک طرح از کد flashing Morse شروع میکند و توضیح میدهد که چگونه عملکردش را به یک کتابخانه تغییر دهیم. این اجازه میدهد دیگران بهراحتی از کدی که شما نوشتهاید استفاده کنند همچنین شما بهراحتی آن را بهروزرسانی کنید و کتابخانه را بهبود ببخشید.
ما با یک طرح که کد مورس سادهای است، شروع میکنیم:
int pin = 13;
void setup()
{
pinMode(pin, OUTPUT);
}
void loop()
{
dot(); dot(); dot();
dash(); dash(); dash();
dot(); dot(); dot();
delay(3000);
}
void dot()
{
digitalWrite(pin, HIGH);
delay(250);
digitalWrite(pin, LOW);
delay(250);
}
void dash()
{
digitalWrite(pin, HIGH);
delay(1000);
digitalWrite(pin, LOW);
delay(250);
}
اگر شما این طرح را اجرا کنید، فلاش میزند تا کد ساده مورس برای SOS را روی پین 13 اجرا کند.
این کد چندین قسمت مختلف دارد که ما نیاز داریم آنها را به کتابخانه خود بیاوریم. اول، ما توابع dot() و dash() را داریم که کار چشمک زدن را بر عهدهدارند. دوم، متغیر ledPin وجود دارد که تابعی است که برای تعیین اینکه کدام پین استفاده شود، مورداستفاده قرار میگیرد. درنهایت یک فراخوانی pinMode() وجود دارد که پین را بهعنوآنیک خروجی تنظیم میکند.
حال بیاید تا این کد را به کتابخانه تبدیل کنیم!
شما حداقل به دو فایل برای کتابخانه نیاز دارید: یکی فایل هدر یا header file و یا (w/the extension.h) و دیگری فایل منبع یا source file یا w/extension.cpp. فایل هدر دارای تعاریف برای کتابخانه است: اساساً فهرستی از همهچیزهایی است که درون آن قرار دارد، درحالیکه فایل منبع کد واقعی را در بردارد. ما کتابخانه خود را “Morse” مینامیم، بنابراین فایل هدر ما Morse.h میشود. بیایید ببینیم چه چیزهایی در آن قرار دارد: در ابتدا ممکن است مقداری عجیب به نظر برسد اما زمانی که فایل منبع را با آن همراه کنید، معنیدار میشود.
هسته فایل هدر شامل یک خط برای هر تابع موجود در کتابخانه میشود که در یک کلاس به همراه هر متغیری که نیاز دارید بستهبندی میشود:
class Morse
{
public:
Morse(int pin);
void dot();
void dash();
private:
int _pin;
};
یک کلاس بهسادگی یک مجموعه از توابع و متغیرهاست که همگی در یک مکان جمع شدهاند. این توابع و متغیرها میتوانند عمومی باشند، به این معنی که آنها میتوانند با استفاده از کتابخانه شما برای مردم قابلدسترس باشند و یا اینکه خصوصی باشند، به این معنی که تنها میتوانند از درون کلاسشان قابلدسترس باشند. هر کلاس داری یک تابع خاص است که بهعنوان سازنده شناخته میشود و برای ایجاد یک نمونه از کلاس مورداستفاده قرار میگیرد. سازنده دارای نام مشابه نام کلاس است و هیچ نوع بازگشتی یا خروجی ندارد.
شما به چندین چیز دیگر در فایل هدر نیاز دارید. اول یک دستور #include که به شما دسترسی به انواع زبان استاندارد و ثابت آردوینو را میدهد. (این بهطور خودکار به طرحهای نرمال اضافه میشود، اما به کتابخانهها اضافه نمیشود). این دستور مانند زیر است:
#include "Arduino.h"
درنهایت، رایج است که همه فایل هدر را در یک ساختار عجیبوغریب قرار دهید:
#ifndef Morse_h
#define Morse_h
// the #include statment and code go here...
#endif
اساساً، اگر کسی تصادفاً کتابخانه شمارا دو بار #include کند، این کار از بروز مشکلات جلوگیری میکند.
درنهایت شما کامنتی در بالای هر کتابخانه به همراه اسم آن، توضیح کوتاهی درباره اینکه چه میکند، جه کسی آن را نوشته است، تاریخ و لایسنس آن میگذارید.
بیایید به یک فایل هدر کامل نگاهی بیندازیم:
/*
Morse.h - Library for flashing Morse code.
Created by David A. Mellis, November 2, 2007.
Released into the public domain.
*/
#ifndef Morse_h
#define Morse_h
#include "Arduino.h"
class Morse
{
public:
Morse(int pin);
void dot();
void dash();
private:
int _pin;
};
#endif
در قسمت دوم این آموزش در "نوشتن کتابخانه برای آردوینو (قسمت دوم)" به قسمتهای مختلف فایل منبع Morse.cpp می پردازیم.
نظرات، پیشنهادات و انتقادات خود را برای بهتر شدن محتوای مطالب با ما در میان بگذارید...
ترجمه شده توسط تیم الکترونیک صنعت بازار | منبع: سایت arduino.cc
- ۹۶/۱۲/۰۴