مبتدی⏱ 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 داخلی استفاده میکنند.
❓ برای تنظیم پایهٔ ۲ بهعنوان خروجی در Arduino، کدام دستور صحیح است؟
→ فصل قبل: فصل ۱: آشنایی با ESP32 و Arduino/C++: درس ۲: نصب Arduino IDE و اولین آپلود کد
درس بعدی: درس ۴: ورودی دیجیتال؛ کار با دکمه و Pull-up/Pull-down ←
طراحی و توسعه: امین شیخ نجدی — glcd.ir | نسخهٔ افزونه: 1.21.0