🖲️ درس 63: لرزش دکمه و debounce

چرا یک فشار گاهی چند بار شمرده می‌شود — و چطور درستش کنیم.

سطح: پیشرفته · زمان: حدود 18 دقیقه · مفاهیم: debounce، millis، دکمه

قدم‌های این درس

  1. دکمه‌ها می‌لرزند!
  2. قدم ۱ — دکمه و LED
  3. قدم ۲ — شمارنده‌ی ساده (و مشکلش)
  4. قدم ۳ — debounce با millis
  5. اشتباه رایج: delay(200) به‌عنوان debounce
  6. چالش: فشار طولانی

نمونه‌ای از کد این درس

const int BUTTON = 2;
int last = HIGH;
int presses = 0;

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

void loop() {
  int now = digitalRead(BUTTON);
  if (now == LOW && last == HIGH) {   // edge: HIGH -> LOW
    presses++;
    Serial.print("presses: ");
    Serial.println(presses);
  }
  last = now;
}

چرا این درس؟

دوره‌ی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیه‌ساز انجام می‌دهی — مدار واقعی می‌چینی، کد واقعی اجرا می‌کنی و نتیجه را همان لحظه می‌بینی. این درس روی درس‌های قبلی ساخته شده، پس اگر تازه شروع کرده‌ای از درس ۱ بیا!

این درس را رایگان در شبیه‌ساز شروع کن 🎓

درس‌های دیگر دوره

📋

درس 62: منوی سریال با switch-case

〰️

درس 64: سنسور آرام: میانگین‌گیری