Здравствуйте! Подскажите как добавить в код своего рода резервную активацию если кнопка не сработала по каким либо причинам. Каждое нажатие кнопки производит вкл и выкл 2 реле, но во время эксплуатации бывают механические сбои нажатия кнопок необходим участок кода который бы производил действие digitalWrite(10, LOW); digitalWrite(11, HIGH); если кнопка 2 не использовалась более 5 секунд и аналогично digitalWrite(10, HIGH); digitalWrite(11, LOW); если кнопка 3 не использовалась более 5 секунд. Таким образом хочу производить своего рода обнуление.
#include <Servo.h>
Servo servo1;
void setup() {
Serial.begin(9600);
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
servo1.attach(5);
pinMode(10, OUTPUT);
digitalWrite(10, LOW);
pinMode(11, OUTPUT);
digitalWrite(11, LOW);
}
bool flag1 = false;
bool flag2 = false;
void loop() {
servo1.write(random(10, 80));
//Serial.println("servo");
delay(1000);
servo1.write(random(81, 150));
//Serial.println("SERVO");
delay(1000);
}
void yield() {
bool btnState1 = !digitalRead(2);
if (btnState1 && !flag1 ) { // обработчик нажатия
flag1 = true;
Serial.println("2");
digitalWrite(10, LOW); digitalWrite(11, HIGH);
}
if (!btnState1 && flag1) { // обработчик отпускания
flag1 = false;
}
bool btnState2 = !digitalRead(3);
if (btnState2 && !flag2 ) { // обработчик нажатия
flag2 = true;
Serial.println("3");
digitalWrite(10, HIGH); digitalWrite(11, LOW);
}
if (!btnState2 && flag2) { // обработчик отпускания
flag2 = false;
}
}