🤹 درس 42: چند کار هم‌زمان

یک آردوینو، سه کار مستقل — بدون اینکه هیچ‌کدام منتظر دیگری بماند.

سطح: متوسط · زمان: حدود 13 دقیقه · مفاهیم: millis، بدون انسداد، الگو

قدم‌های این درس

  1. هدف: سه ریتم متفاوت
  2. قدم ۱ — هر کار، تایمر خودش
  3. قدم ۲ — تله‌ی unsigned long
  4. چالش: کار چهارم

نمونه‌ای از کد این درس

const int fast = 13, slow = 12, buzzer = 8, button = 2;

unsigned long tFast = 0, tSlow = 0;
bool fastOn = false, slowOn = false;

void setup() {
  pinMode(fast, OUTPUT);
  pinMode(slow, OUTPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(button, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {
  unsigned long now = millis();

  // کار ۱ — چشمک تند
  if (now - tFast >= 200) {
    tFast = now;
    fastOn = !fastOn;
    digitalWrite(fast, fastOn);
  }

  // کار ۲ — چشمک آهسته
  if (now - tSlow >= 1000) {
    tSlow = now;
    slowOn = !slowOn;
    digitalWrite(slow, slowOn);
  }

  // کار ۳ — دکمه، بدون هیچ تأخیری
  if (digitalRead(button) == LOW) {
    tone(buzzer, 880, 60);
  }
}

چرا این درس؟

دوره‌ی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیه‌ساز انجام می‌دهی — مدار واقعی می‌چینی، کد واقعی اجرا می‌کنی و نتیجه را همان لحظه می‌بینی. این درس روی درس‌های قبلی ساخته شده، پس اگر تازه شروع کرده‌ای از درس ۱ بیا!

این درس را رایگان در شبیه‌ساز شروع کن 🎓

درس‌های دیگر دوره

🚸

درس 41: چراغ عابر پیاده

⚡

درس 43: وقفه: گوش‌به‌زنگ همیشگی