آموزش آردوینو

آموزش ساخت تابع در کد آردوینو (استفاده از توابع شخصی)

توابع، بخش‌هایی از کد برنامه شما هستند که کارها را انجام می‌دهند. آن‌ها شامل کدهایی برای کارهایی مانند دریافت داده از یک سنسور، تنظیم وضعیت ولتاژ یک پین یا نمایش متن روی نمایشگر LCD هستند. در این مقاله، ما یاد می‌گیریم توابع چیستند و چگونه می‌توان از آن‌ها در پروژه‌های آردوینو استفاده کرد.

تابع آردوینو چیست؟

تمام توابع دارای ورودی و خروجی هستند:

تابع آردوینو چیست؟

  • ورودی‌ها اطلاعاتی هستند که به تابع می‌دهید. تابع عملی روی این ورودی انجام می‌دهد و خروجی تولید می‌کند.
  • به عنوان مثال، تابع زیر را در نظر بگیرید:
x = y^2 + 1

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

اگر مقدار y = 3 را وارد کنیم، تابع محاسبه را انجام داده و خروجی x = 10 خواهد بود.

ورودی و خروجی function arduino

در برنامه‌نویسی می‌گوییم که این تابع مقدار 10 را باز می‌گرداند.

هر تابع دارای یک نوع بازگشتی است. نوع بازگشتی مشخص می‌کند که تابع چه نوع داده‌ای را بازمی‌گرداند.

  • اگر تابع یک عدد صحیح بازگرداند، نوع بازگشتی آن int است:
int functionName() {
}
  • برای توابعی که هیچ مقداری باز نمی‌گردانند، نوع بازگشتی void است:
void functionName() {
}

کد تابع داخل آکولادها قرار می‌گیرد و شما می‌توانید هر کدی که در آردوینو استفاده می‌کنید را داخل یک تابع قرار دهید:

void functionName() {
  // کد تابع اینجا قرار می‌گیرد
}

استفاده از یک تابع در برنامه به عنوان فراخوانی تابع یا call کردن تابع شناخته می‌شود. برای فراخوانی یک تابع، نام تابع را نوشته، پرانتز باز و بسته قرار داده و سمی‌کالن می‌گذاریم:

void loop() {
  functionName();
}

در اینجا تابع functionName() در بخش loop فراخوانی شده است، اما توابع می‌توانند در بخش setup هم فراخوانی شوند.

وقتی به یک تابع ورودی می‌دهیم، به آن آرگومان (argument) داده‌ایم. آرگومان‌ها داده‌ای هستند که تابع برای انجام وظیفه خود نیاز دارد.

به عنوان مثال، تابع digitalWrite() دو ورودی می‌گیرد: شماره پین و وضعیت پین:

digitalWrite(pin, mode);
  • pin و mode پارامتر هستند که نوع داده‌ای که تابع دریافت می‌کند را مشخص می‌کنند.
  • مقادیر واقعی که می‌دهیم، آرگومان هستند. برای مثال، اگر بخواهیم پین 10 را روشن کنیم:
digitalWrite(10, HIGH);
  • pin و mode پارامتر هستند
  • 10 و HIGH آرگومان هستند

همه توابع پارامتر نمی‌گیرند. بعضی توابع مانند millis() بدون هیچ آرگومانی یک مقدار بازمی‌گردانند.

پروژه نمونه ساخت تابع آردوینو

LEDها روش خوبی برای نمایش این موضوع هستند، زیرا می‌توان آن‌ها را با هر دستگاه دیگری که توسط سیگنال 5 ولت آردوینو کنترل می‌شود جایگزین کرد. بنابراین، بیایید تابع functionName() را طوری بسازیم که یک LED سبز و یک LED آبی چشمک بزنند.

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

قطعات مورد نیاز برای ساخت این پروژه:

  • آردوینو Uno
  • سیم‌های جامپر
  • برد بورد
  • آی‌سی SN74HC14N (Schmitt trigger)
  • کلید فشاری لمسی
  • مقاومت 10 کیلو اهم
  • خازن 1 میکروفاراد
قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

نحوه اتصال مدار:

پروژه نمونه ساخت تابع آردوینو

پس از اتصال مدار، این کد را روی آردوینو آپلود کنید:

void setup() {
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
}

void loop() {
  blinkLED(9, 500);
  blinkLED(10, 1000);
}

void blinkLED(int pin, int duration) {
  digitalWrite(pin, HIGH);
  delay(duration);
  digitalWrite(pin, LOW);
  delay(duration);
}

توضیح کد

در بخش setup()، پین‌های 9 و 10 به عنوان خروجی تنظیم شده‌اند.

در بخش loop() تابع blinkLED() دو بار فراخوانی می‌شود – یک بار برای هر LED. هر بار که تابع فراخوانی می‌شود، آردوینو به جایی می‌رود که تابع blinkLED() با تعریف زیر قرار دارد:

void blinkLED(int pin, int duration)

در تابع blinkLED() دو پارامتر تعریف شده است:

  • pin : یک متغیر از نوع int که شماره پین آردوینو را ذخیره می‌کند
  • duration : یک متغیر از نوع int که مدت زمان چشمک زدن LED را به میلی‌ثانیه ذخیره می‌کند

وقتی اولین فراخوانی blinkLED(9, 500) در بخش loop() انجام شود، عدد 9 در متغیر pin و عدد 500 در متغیر duration ذخیره می‌شود.

در بدنه تابع blinkLED()، ابتدا پین را روشن (HIGH) می‌کنیم، سپس به اندازه مقدار duration صبر می‌کنیم، بعد پین را خاموش (LOW) کرده و دوباره همان مدت زمان صبر می‌کنیم. این کار باعث می‌شود LED متصل به پین 9 هر 500 میلی‌ثانیه روشن و خاموش شود.

پس از اجرای کامل کد داخل تابع blinkLED()، آردوینو از تابع خارج شده و به خط بعدی کد در بخش loop() باز می‌گردد.

خط بعدی کد در بخش loop()، دومین فراخوانی تابع blinkLED() است. در این مرحله، عدد 10 در متغیر pin و 1000 میلی‌ثانیه در متغیر duration ذخیره می‌شود. این باعث می‌شود LED متصل به پین 10 هر 1000 میلی‌ثانیه روشن و خاموش شود.

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

5 (2 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *