⚡ ماموریت ۳۶: شمارش با وقفه
دکمه رو روی پین ۲ بذار و با attachInterrupt بشمرش. متغیر مشترک باید volatile باشه.
سطح: چالشی ⭐⭐⭐ · مود: آردوینو — با کد
هدفها
- ☐ یه آردوینو روی صحنه باشه
- ☐ یه دکمه
- ☐ کد از attachInterrupt استفاده کنه
- ☐ متغیر مشترک volatile باشه
- ☐ شبیهسازی در حال اجرا
قطعههای لازم
- Arduino Uno
- کلید فشاری
💡 گیر کردی؟ داخل شبیهساز راهنما را ببین، و اگر باز هم نشد دکمهی «برام حلش کن» مدار را برایت میچیند تا ببینی چطور کار میکند.
جواب کامل
اول خودت امتحان کن! بعد جواب را ببین 👀
سیمکشی
- Arduino Uno (D2) ⟷ Push Button (PIN_A1)
- 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);
}
}
ماموریتهای مشابه
🚸
ماموریت ۳۵: چراغ عابر پیاده
↔️
ماموریت ۳۷: موتور در دو جهت
💾
ماموریت ۳۴: رکورد را یادش بماند
🚗
ماموریت ۳۸: ماشین رباتیک
📚 برای یاد گرفتن پایهها سری به دورهی آموزش آردوینو بزن · 🎯 همهی ماموریتها