🤹 درس 42: چند کار همزمان
یک آردوینو، سه کار مستقل — بدون اینکه هیچکدام منتظر دیگری بماند.
سطح: متوسط · زمان: حدود 13 دقیقه · مفاهیم: millis، بدون انسداد، الگو
قدمهای این درس
- هدف: سه ریتم متفاوت
- قدم ۱ — هر کار، تایمر خودش
- قدم ۲ — تلهی unsigned long
- چالش: کار چهارم
نمونهای از کد این درس
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);
}
}
چرا این درس؟
دورهی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیهساز انجام میدهی — مدار واقعی میچینی، کد واقعی اجرا میکنی و نتیجه را همان لحظه میبینی. این درس روی درسهای قبلی ساخته شده، پس اگر تازه شروع کردهای از درس ۱ بیا!
این درس را رایگان در شبیهساز شروع کن 🎓