Arduino - dubbel funktionsknapp - Long Press/kort tryck (utan fördröjning) + Bonus (5 / 6 steg)
Steg 5: Den fullständiga koden
Här är den fullständiga koden redo för uppladdning till din Arduino.
int LED1 = 12.
int LED2 = 13.
int knappen = 3;
booleska LED1State = false;
booleska LED2State = false;
lång buttonTimer = 0;
lång longPressTime = 250;
booleska buttonActive = false;
booleska longPressActive = false;
void setup() {
pinMode (LED1, OUTPUT);
pinMode (LED2, OUTPUT);
pinMode (knapp, indata);
}
void loop() {
om (digitalRead(button) == hög) {
om (buttonActive == false) {
buttonActive = sant;
buttonTimer = millis();
}
om ((millis() - buttonTimer > longPressTime) & & (longPressActive == false)) {
longPressActive = sant;
LED1State =! LED1State;
digitalWrite (LED1, LED1State);
}
} annat {
om (buttonActive == true) {
om (longPressActive == true) {
longPressActive = false;
} annat {
LED2State =! LED2State;
digitalWrite (LED2, LED2State);
}
buttonActive = false;
}
}
}