درس 5

⏱️ مدیریت زمان در Arduino با delay و millis

در این درس یاد می‌گیریم چگونه زمان را در Arduino مدیریت کنیم،
چرا استفاده زیاد از delay خطرناک است و چگونه با millis برنامه‌های حرفه‌ای و بدون توقف بنویسیم.


🎯 اهداف درس

  • درک عملکرد تابع delay
  • شناخت مشکلات delay در پروژه‌های واقعی
  • یادگیری استفاده از millis برای زمان‌بندی حرفه‌ای
  • نوشتن کد non-blocking (بدون توقف)
پیشرفت آموزش — ۵۵٪

🧠 مفهوم زمان در Arduino

زمان چگونه کار می‌کند؟

Arduino یک میکروکنترلر تک‌وظیفه‌ای است؛ یعنی در هر لحظه فقط یک دستور را اجرا می‌کند.

زمانی که از delay استفاده می‌کنیم، اجرای کل برنامه متوقف می‌شود و Arduino هیچ کاری انجام نمی‌دهد.


⛔ مشکل delay چیست؟


⚡ مثال ساده با delay

در این کد LED چشمک می‌زند، اما در زمان delay هیچ ورودی یا پردازش دیگری انجام نمی‌شود.


🚀 راه‌حل حرفه‌ای: millis()

تابع millis چیست؟

تابع millis() تعداد میلی‌ثانیه‌هایی که از روشن شدن Arduino گذشته را برمی‌گرداند.

با استفاده از آن می‌توانیم بدون توقف برنامه، زمان را مدیریت کنیم.


✅ مثال حرفه‌ای چشمک‌زن بدون delay


🖼️ تصویر شماتیک (پیشنهادی)

📷 تصویر اتصال LED به پین 13 به همراه مقاومت 220 اهم
(در اپ می‌توان تصویر breadboard یا شماتیک قرار داد)


🧩 مقایسه delay و millis

  • delay: ساده اما متوقف‌کننده کل برنامه
  • millis: حرفه‌ای، سریع و مناسب پروژه‌های واقعی
  • در IoT و سیستم‌های هوشمند، delay تقریباً ممنوع است ❌

📝 تمرین پیشنهادی


🎓 جمع‌بندی

در این درس یاد گرفتید که:

  • delay باعث توقف کل برنامه می‌شود
  • millis پایه برنامه‌نویسی حرفه‌ای در Arduino است
  • تقریباً تمام پروژه‌های پیشرفته بدون delay نوشته می‌شوند
خانهپروفایلتماس