🧮 ماموریت ۵۰: شمارندهی بدون پرش
دکمه روی D2 با INPUT_PULLUP. فقط وقتی حالت دکمه بیشتر از ۵۰ میلیثانیه ثابت موند، بشمار — با millis().
سطح: متوسط ⭐⭐ · مود: آردوینو — با کد
هدفها
- ☐ یه آردوینو روی صحنه باشه
- ☐ یه دکمه
- ☐ کد از INPUT_PULLUP استفاده کنه
- ☐ کد زمان رو با millis بسنجه
- ☐ کد شمارش رو چاپ کنه
- ☐ شبیهسازی در حال اجرا
قطعههای لازم
- Arduino Uno
- کلید فشاری
💡 گیر کردی؟ داخل شبیهساز راهنما را ببین، و اگر باز هم نشد دکمهی «برام حلش کن» مدار را برایت میچیند تا ببینی چطور کار میکند.
جواب کامل
اول خودت امتحان کن! بعد جواب را ببین 👀
سیمکشی
- Arduino Uno (D2) ⟷ Push Button (PIN_A1)
- 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
⏱️
ماموریت ۵۴: کرنومتر
🕹️
ماموریت ۵۵: نقطهی جویاستیکی
📚 برای یاد گرفتن پایهها سری به دورهی آموزش آردوینو بزن · 🎯 همهی ماموریتها