⏲️ ماموریت ۴۶: بازی سرعت واکنش

بعد از یه مکث تصادفی LED روشن بشه؛ زمان تا فشار دکمه رو با millis بسنج.

سطح: چالشی ⭐⭐⭐ · مود: آردوینو — با کد

هدف‌ها

قطعه‌های لازم

▶ همین ماموریت را در شبیه‌ساز امتحان کن
💡 گیر کردی؟ داخل شبیه‌ساز راهنما را ببین، و اگر باز هم نشد دکمه‌ی «برام حلش کن» مدار را برایت می‌چیند تا ببینی چطور کار می‌کند.

جواب کامل

اول خودت امتحان کن! بعد جواب را ببین 👀

سیم‌کشی

  1. Arduino Uno (D2) ⟷ Push Button (PIN_A1)
  2. Push Button (PIN_A2) ⟷ Arduino Uno (GND1)
  3. Arduino Uno (D9) ⟷ مقاومت 220Ω (PIN1)
  4. مقاومت 220Ω (PIN2) ⟷ LED (Green) (ANODE)
  5. LED (Green) (CATHODE) ⟷ Arduino Uno (GND2)
  6. Arduino Uno (D10) ⟷ مقاومت 220Ω (PIN1)
  7. مقاومت 220Ω (PIN2) ⟷ LED (Red) (ANODE)
  8. LED (Red) (CATHODE) ⟷ Arduino Uno (GND2)

کد

// Reaction time game. Wait random time, green LED on,
// press button before red LED comes on.
const int BUTTON = 2;
const int GREEN  = 9;
const int RED    = 10;

void setup() {
  pinMode(BUTTON, INPUT_PULLUP);
  pinMode(GREEN, OUTPUT);
  pinMode(RED, OUTPUT);
  Serial.begin(9600);
  randomSeed(analogRead(A0));
}

void loop() {
  digitalWrite(GREEN, LOW);
  digitalWrite(RED, LOW);
  delay(random(1500, 4000));

  digitalWrite(GREEN, HIGH);
  unsigned long t0 = millis();

  // Wait up to 1 second
  while (millis() - t0 < 1000) {
    if (digitalRead(BUTTON) == LOW) {
      Serial.print("Reaction: ");
      Serial.print(millis() - t0);
      Serial.println(" ms");
      delay(2000);
      return;
    }
  }
  digitalWrite(GREEN, LOW);
  digitalWrite(RED, HIGH);
  Serial.println("Too slow!");
  delay(2000);
}

ماموریت‌های مشابه

📈

ماموریت ۴۵: ثبت داده

🎲

ماموریت ۴۷: بازی سایمون

⌨️

ماموریت ۴۴: فرمان از سریال

🏡

ماموریت ۴۸: خانه‌ی هوشمند

📚 برای یاد گرفتن پایه‌ها سری به دوره‌ی آموزش آردوینو بزن · 🎯 همه‌ی ماموریت‌ها