🧮 ماموریت ۵۰: شمارنده‌ی بدون پرش

دکمه روی D2 با INPUT_PULLUP. فقط وقتی حالت دکمه بیشتر از ۵۰ میلی‌ثانیه ثابت موند، بشمار — با millis().

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

هدف‌ها

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

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

جواب کامل

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

سیم‌کشی

  1. Arduino Uno (D2) ⟷ Push Button (PIN_A1)
  2. Push Button (PIN_B1) ⟷ Arduino Uno (GND2)

کد

const int BTN = 2;
int count = 0;
int stableState = HIGH;
int lastReading = HIGH;
unsigned long lastChange = 0;

void setup() {
  pinMode(BTN, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {
  int reading = digitalRead(BTN);
  if (reading != lastReading) lastChange = millis();   // it bounced: restart the clock
  if (millis() - lastChange > 50 && reading != stableState) {
    stableState = reading;
    if (stableState == LOW) {                            // a real, clean press
      count++;
      Serial.println(count);
    }
  }
  lastReading = reading;
}

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

〰️

ماموریت ۵۱: عدد آروم و صاف

💡

ماموریت ۵۳: عدد دودویی روی ۸ LED

⏱️

ماموریت ۵۴: کرنومتر

🕹️

ماموریت ۵۵: نقطه‌ی جوی‌استیکی

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