⚙️ کامپایل و اجرای واقعی کد آردوینو، آنلاین و بدون برد

وقتی روی برد واقعی کد آردوینو را آپلود می‌کنی، دو اتفاق می‌افتد: اول کامپایلر کد C++ تو را به زبان ماشین ترجمه می‌کند، بعد تراشه‌ی ATmega328P روی آردوینو Uno آن را اجرا می‌کند. در شبیه‌ساز ما حالا می‌توانی همین دو قدم را بدون برد انجام بدهی: «اجرای واقعی».

اجرای معمولی و اجرای واقعی چه فرقی دارند؟

اجرای معمولیاجرای واقعی
چطور کار می‌کندکد به جاوااسکریپت ترجمه می‌شودکامپایلر واقعی آردوینو (avr-gcc) + تراشه‌ی شبیه‌سازی‌شده
دقتتقریبی؛ بیشتر برنامه‌های آموزشی کار می‌کننددقیق مثل برد واقعی، تا سطح هر دستور ماشین
خطای کامپایلساده‌شدههمان پیغام Arduino IDE با شماره‌ی خط
بردهاهمه (Uno، Nano، Mega، ESP32، Pico)Uno و Nano
LCD، OLED، سروو، بازر، نئوپیکسل، DHT، ساعت RTCنشان داده می‌شوندنشان داده می‌شوند (با کتابخانه‌ی واقعی)
ماتریس LED (MAX7219) و نمایشگر ۴ رقمی (TM1637)کار می‌کنندکار می‌کنند
کی‌پد، کنترل مادون‌قرمز، اولتراسونیک، کارت SD، RFID، بلوتوثکار می‌کنندهنوز نه
تایپ در Serial Monitorکار می‌کندکار می‌کند
اینترنتلازم نیستبرای کامپایل لازم است

چطور روشنش کنم؟

  1. در مود آردوینوی شبیه ساز مدار، یک Uno یا Nano بگذار.
  2. کنار دکمه‌ی «اجرا»، دکمه‌ی «واقعی» را بزن تا زرد شود.
  3. «اجرا» را بزن. در Serial Monitor می‌بینی کد کامپایل شد و چند بایت از ۳۲ کیلوبایت حافظه را گرفت.

خطای کامپایل را چطور بخوانم؟

اگر جایی ; جا افتاده باشد، کامپایلر مثلاً می‌نویسد:

sketch.ino:3:22: error: expected ';' before '}' token

یعنی خط ۳، ستون ۲۲. همان‌جا را نگاه کن. معمولاً اشتباه در خط قبل از جایی است که کامپایلر گفته. این همان پیغامی است که روی برد واقعی هم می‌بینی، پس یاد گرفتنش مستقیم به کار پروژه‌ی واقعی می‌آید.

کتابخانه‌های موجود در اجرای واقعی

حدود ۳۰ کتابخانه‌ی پرکاربرد، همان نسخه‌های اصلی که در Arduino IDE نصب می‌کنی: Wire، SPI، SoftwareSerial، EEPROM، Servo، Stepper، AccelStepper، LiquidCrystal، LiquidCrystal_I2C، Adafruit_GFX، Adafruit_SSD1306، Adafruit_NeoPixel، DHT، RTClib، OneWire، DallasTemperature، Keypad، IRremote، LedControl، TM1637Display، MFRC522، SD، HX711، TinyGPSPlus، Adafruit_MPU6050، Adafruit_PWMServoDriver، TimerOne، Bounce2 و ArduinoJson. اگر کتابخانه‌ای را #include کنی که نصب نیست، پیغام خطا فهرست کتابخانه‌های موجود را نشان می‌دهد.

«کامپایل می‌شود» با «در صحنه دیده می‌شود» فرق دارد: برنامه‌ات با همه‌ی این کتابخانه‌ها کامپایل و اجرا می‌شود، ولی فقط قطعه‌هایی که در جدول بالا آمده‌اند در اجرای واقعی واکنش نشان می‌دهند.

حافظه‌ی برنامه چرا مهم است؟

آردوینو Uno فقط ۳۲ کیلوبایت جا برای برنامه و ۲ کیلوبایت رم دارد. اجرای واقعی دقیقاً می‌گوید برنامه‌ات چقدر جا گرفته. اگر متن‌های بلند زیادی با Serial.print چاپ می‌کنی، رم زود پر می‌شود. ترفندش این است که متن را داخل F("...") بنویسی تا در حافظه‌ی برنامه بماند.

اجرای واقعی را امتحان کن ⚙️

مقاله‌های دیگر

🤖

آردوینو چیست؟ راهنمای کامل برای شروع از صفر

⚡

بهترین شبیه‌ساز مدار آنلاین فارسی — چرا شبیه‌ساز، و چرا تینکرکد فارسی؟

💡

ساده‌ترین پروژه الکترونیک برای بچه‌ها: روشن‌کردن یک LED