⏱️ ماموریت ۱۷: چشمک بدون delay
همون چشمک، ولی این بار با millis() — تا برنامه وسط انتظار قفل نشه.
سطح: چالشی ⭐⭐⭐ · مود: آردوینو — با کد
هدفها
- ☐ یه آردوینو روی صحنه باشه
- ☐ یه LED
- ☐ کد از millis استفاده کنه
- ☐ کد هیچ delay نداشته باشه
- ☐ شبیهسازی در حال اجرا
قطعههای لازم
- Arduino Uno
- کلید فشاری
- بازر زنگی
- مقاومت 220Ω × ۲
- LED قرمز
- LED سبز
💡 گیر کردی؟ داخل شبیهساز راهنما را ببین، و اگر باز هم نشد دکمهی «برام حلش کن» مدار را برایت میچیند تا ببینی چطور کار میکند.
جواب کامل
اول خودت امتحان کن! بعد جواب را ببین 👀
سیمکشی
- Arduino Uno (D2) ⟷ Push Button (PIN_A1)
- Push Button (PIN_B1) ⟷ Arduino Uno (GND1)
- Arduino Uno (D8) ⟷ بازر زنگی (POS)
- بازر زنگی (NEG) ⟷ Arduino Uno (GND2)
- Arduino Uno (D13) ⟷ Resistor (220Ω) (PIN1)
- Resistor (220Ω) (PIN2) ⟷ LED (Red) (ANODE)
- LED (Red) (CATHODE) ⟷ Arduino Uno (GND2)
- Arduino Uno (D12) ⟷ Resistor (220Ω) (PIN1)
- Resistor (220Ω) (PIN2) ⟷ LED (Green) (ANODE)
- LED (Green) (CATHODE) ⟷ Arduino Uno (GND2)
کد
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);
}
ماموریتهای مشابه
🎭
ماموریت ۱۸: دو چشمک با دو سرعت
📏
ماموریت ۲۲: فاصلهسنج
🅿️
ماموریت ۲۳: حسگر پارک
7️⃣
ماموریت ۲۵: شمارش صفر تا نه
📚 برای یاد گرفتن پایهها سری به دورهی آموزش آردوینو بزن · 🎯 همهی ماموریتها