bool
valA1 = 1,
valB1 = 1,
valClDA2 = 1,
valClDB2 = 1,
startTimerClawDelay;
float valT1, valT2, timeoutSet = 1; //sec
uint16_t tickEvery_ms = 100;
void setup() {
Serial.begin(115200);
pinMode(2, INPUT_PULLUP);
pinMode(13, OUTPUT);
}
void loop() {
valB1 = digitalRead(2);
if(valA1 == 1 && valB1 == 0){
timerStart(timeoutSet);
digitalWrite(LED_BUILTIN, HIGH);
}
valA1 = valB1;
timerTask();
if(startTimerClawDelay == 0){digitalWrite(13, LOW);}
}
void timerStart(float timeout){startTimerClawDelay = 1; valT2 = timeout;}
void timerTask(){
valClDB2 = (millis()/(tickEvery_ms/2))%2;
if(valClDA2 == 0 && valClDB2 == 1 && startTimerClawDelay == 1){
if(valT2 > 0){valT2 -= 0.1;}
if(valT2 <= 0){startTimerClawDelay = 0;}
}
valClDA2 = valClDB2;
}