⚡ ماموریت ۳۶: شمارش با وقفه

دکمه رو روی پین ۲ بذار و با attachInterrupt بشمرش. متغیر مشترک باید volatile باشه.

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

هدف‌ها

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

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

جواب کامل

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

سیم‌کشی

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

کد

const int button = 2, led = 13;
volatile int count = 0;
volatile bool changed = false;

void onPress() {
  count++;
  changed = true;
}

void setup() {
  pinMode(button, INPUT_PULLUP);
  pinMode(led, OUTPUT);
  attachInterrupt(digitalPinToInterrupt(button), onPress, FALLING);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(led, HIGH);
  delay(400);
  digitalWrite(led, LOW);
  delay(400);

  if (changed) {
    changed = false;
    Serial.print("shomare:");
    Serial.println(count);
  }
}

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

🚸

ماموریت ۳۵: چراغ عابر پیاده

↔️

ماموریت ۳۷: موتور در دو جهت

💾

ماموریت ۳۴: رکورد را یادش بماند

🚗

ماموریت ۳۸: ماشین رباتیک

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