مبتدی⏱ 10 دقیقه مطالعه

اولین برنامهٔ واقعی: چشمک‌زدن یک LED («Blink»). این ساده‌ترین برنامه‌ای‌ست که ثابت می‌کند مسیر کد تا سخت‌افزار به‌درستی کار می‌کند.

قبل از شروع: ساختار یک اسکچ آردوینو

هر برنامهٔ آردوینو (که به آن «Sketch» می‌گویند) از دو تابع تشکیل شده: setup() که یک‌بار اجرا می‌شود (برای پیکربندی اولیه، مثل تعیین ورودی/خروجی بودن پایه‌ها)، و loop() که بلافاصله بعد از پایان setup شروع می‌شود و تا قطع برق یا ریست شدن برد، بی‌وقفه از نو اجرا می‌شود — دقیقاً معادل while True: در میکروپایتون.

پیکربندی پایه و روشن/خاموش کردن آن

CPP
const int LED_PIN = 2;   // روی اغلب بردها LED آبی داخلی است

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_PIN, HIGH);
  delay(500);
  digitalWrite(LED_PIN, LOW);
  delay(500);
}

خط به خط

  • const int LED_PIN = 2; — یک ثابت عددی به‌نام LED_PIN تعریف می‌کنیم؛ استفاده از یک نام معنادار به‌جای نوشتن مستقیم عدد ۲ در همه‌جای کد، خوانایی و نگهداری برنامه را بسیار بهتر می‌کند.
  • pinMode(LED_PIN, OUTPUT); — معادل دقیق Pin(2, Pin.OUT) در میکروپایتون: به تراشه می‌گوید این پایه قرار است خروجی باشد.
  • digitalWrite(LED_PIN, HIGH); — پایه را HIGH (۳٫۳ ولت) می‌کند؛ LED روشن می‌شود.
  • delay(500); — اجرای برنامه را دقیقاً ۵۰۰ میلی‌ثانیه متوقف می‌کند (واحد delay میلی‌ثانیه است، نه ثانیه — تفاوتی مهم با sleep() پایتون که بر حسب ثانیه است).
  • digitalWrite(LED_PIN, LOW); و delay(500); — دقیقاً برعکس دو خط قبل. بعد از این، تابع loop() تمام می‌شود و بلافاصله دوباره از ابتدا اجرا می‌شود — نتیجه: چشمک‌زدن پیوسته.
💡 نکته

هر خط دستور در C/C++‎ باید با یک سمی‌کولن «;» تمام شود و هر بلوک کد (مثل بدنهٔ setup و loop) داخل آکولاد «{ }» قرار می‌گیرد — برخلاف پایتون که فاصله‌گذاری (Indentation) این نقش را بازی می‌کند.

چند اشتباه رایج مبتدیان

  • فراموش‌کردن سمی‌کولن: رایج‌ترین خطای کامپایل برای تازه‌کاران؛ کامپایلر معمولاً پیام «expected ';' before ...» می‌دهد.
  • عدم تطابق آکولادها: اگر تعداد { و } برابر نباشد، کل فایل ممکن است کامپایل نشود؛ خطاها را همیشه از بالای پیام کامپایلر بررسی کنید، نه فقط آخرین خط.
  • روشن نشدن LED: اگر روی برد واقعی LED روشن نشد، شماره پایه را با سیلک‌اسکرین برد مقایسه کنید؛ بعضی بردها به‌جای GPIO2 از پایهٔ دیگری برای LED داخلی استفاده می‌کنند.
شبیه‌سازی زندهٔ Blink روی ESP32 با Arduino — پروژهٔ رسمی Wokwi، دقیقاً همین کد روی پایهٔ GPIO2 باز کردن در Wokwi ↗
در حال بارگذاری شبیه‌ساز… (ممکن است چند ثانیه طول بکشد)

این یک شبیه‌سازی واقعی و قابل اجراست؛ روی دکمه پخش (▶) در Wokwi بزنید تا کد روی برد مجازی ESP32 اجرا شود. اگر جعبهٔ بالا بیش از حد سیاه/خالی ماند، صفحه را رفرش کنید یا از دکمهٔ «باز کردن در Wokwi» بالا استفاده کنید.

❓ برای تنظیم پایهٔ ۲ به‌عنوان خروجی در Arduino، کدام دستور صحیح است؟
طراحی و توسعه: امین شیخ نجدیglcd.ir | نسخهٔ افزونه: 1.21.0