الگوریتم اول

لطفا صبر کنید...

ساختار اصلی برنامه‌ها در آردوئینو

در برنامه‌نویسی آردوئینو، ساختار اصلی هر برنامه از دو بخش اصلی تشکیل می‌شود: ()setup و ()loop. این دو بخش برای راه‌اندازی و اجرای مداوم برنامه طراحی شده‌اند و در تمام پروژه‌های آردوئینو باید وجود داشته باشند. در ادامه به بررسی دقیق این دو بخش می‌پردازیم.

1. بخش ()setup

تابع ()setup در ابتدای هر برنامه آردوئینو قرار می‌گیرد و تنها یک بار در ابتدا هنگام روشن شدن برد یا راه‌اندازی مجدد آن اجرا می‌شود. در این بخش، شما تنظیمات اولیه و پیکربندی‌های مورد نیاز برای پروژه خود را انجام می‌دهید.

وظایف بخش ()setup

  • تنظیم پین‌ها: برای تعیین اینکه کدام پین‌ها به عنوان ورودی یا خروجی استفاده خواهند شد.
  • راه‌اندازی ارتباطات سریال: برای پیکربندی ارتباط سریال و ارسال داده‌ها به کامپیوتر.
  • راه‌اندازی سنسورها یا دستگاه‌های خارجی: اگر نیاز به راه‌اندازی دستگاه‌های خاص دارید، مانند ماژول‌های سنسور یا صفحه‌نمایش‌ها، این کار معمولاً در این بخش انجام می‌شود.

ساختار تابع ()setup

void setup() {
  // تنظیمات اولیه و راه‌اندازی‌ها
}

مثال:

در این مثال، پین 13 به عنوان خروجی و پین 7 به عنوان ورودی تنظیم می‌شود و ارتباط سریال آغاز می‌شود:

void setup() {
  pinMode(13, OUTPUT);  // تنظیم پین 13 به عنوان خروجی
  pinMode(7, INPUT);    // تنظیم پین 7 به عنوان ورودی
  Serial.begin(9600);   // شروع ارتباط سریال با سرعت 9600 بیت بر ثانیه
}

2. بخش ()loop

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

وظایف بخش ()loop

  • انجام عملیات تکراری: برای انجام هر عملی که نیاز به تکرار مداوم دارد (مانند خواندن داده‌ها از سنسورها، کنترل دستگاه‌ها و نمایش اطلاعات).
  • اجرای کدهای اصلی پروژه: هر عملیات خاصی که باید به طور مداوم انجام شود، در این بخش قرار می‌گیرد.

ساختار تابع ()loop

void loop() {
  // کدهای تکراری و عملیات اصلی
}

مثال:

در این مثال، LED متصل به پین 13 روشن و خاموش می‌شود و مقدار ورودی از پین 7 خوانده می‌شود:

void loop() {
  int sensorValue = digitalRead(7);  // خواندن مقدار ورودی از پین 7
  if (sensorValue == HIGH) {
    digitalWrite(13, HIGH);  // اگر سنسور فعال است، LED را روشن کن
  } else {
    digitalWrite(13, LOW);   // در غیر این صورت، LED را خاموش کن
  }
}

3. تفاوت بین ()setup و ()loop

  • ()setup تنها یک بار هنگام شروع برنامه یا ریست برد اجرا می‌شود و برای انجام تنظیمات اولیه استفاده می‌شود.
  • ()loop به صورت پیوسته و مداوم اجرا می‌شود و برای انجام کارهایی که باید به طور مستمر انجام شوند، استفاده می‌شود.

4. نکات مهم

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

5. یک مثال ساده

در این مثال، یک LED به پین 13 متصل است و با استفاده از یک سنسور که به پین 7 متصل شده، چراغ روشن و خاموش می‌شود. در این برنامه از ()setup برای تنظیم پین‌ها و ارتباط سریال و از ()loop برای خواندن ورودی سنسور و کنترل LED استفاده شده است.

void ()setup {
  pinMode(13, OUTPUT);  // تنظیم پین 13 به عنوان خروجی برای LED
  pinMode(7, INPUT);    // تنظیم پین 7 به عنوان ورودی برای سنسور
  Serial.begin(9600);   // راه‌اندازی ارتباط سریال
}

void ()loop {
  int sensorValue = digitalRead(7);  // خواندن ورودی از سنسور
  if (sensorValue == HIGH) {
    digitalWrite(13, HIGH);  // روشن کردن LED اگر سنسور فعال است
    Serial.println("LED is ON");
  } else {
    digitalWrite(13, LOW);   // خاموش کردن LED اگر سنسور غیرفعال است
    Serial.println("LED is OFF");
  }
  delay(1000);  // تاخیر 1 ثانیه
}

نتیجه‌گیری

در برنامه‌های آردوئینو، دو بخش اصلی ()setup و ()loop وجود دارند که هرکدام وظیفه خاصی دارند. ()setup برای انجام تنظیمات اولیه و راه‌اندازی‌ها استفاده می‌شود، در حالی که ()loop برای اجرای مداوم و تکراری عملیات و کدهای اصلی برنامه به‌کار می‌رود. این ساختار ساده و کاربرپسند باعث می‌شود که توسعه‌دهندگان به راحتی بتوانند برنامه‌های خود را برای پروژه‌های الکترونیکی مختلف بنویسند.