本日もデバウンシング。
そしてデバウンシング最後です。
const int LED = 13; const int BTN = 7; int val = 0; int stat = 0; int old = 0; void setup() { pinMode(LED, OUTPUT); pinMode(BTN, INPUT); } void loop() { val = digitalRead(BTN); if (old == LOW && val == HIGH) { stat = 1 - stat; delay(10); } old = val; if (stat == 1) { digitalWrite(LED, HIGH); } else { digitalWrite(LED, LOW); } }
ほんの少し待つことで、
スイッチの誤作動が防げます。
delay(10);
でもまだ10回に1回ぐらい
失敗してる。