Доброго дня!
Не получается организовать подсчет времени работы исполнительного устройства (для примера – светодиод). Надо чтобы после остановки подсчет останавливался, а после включения – продолжался.
Как в скетч прикрутить паузу/пуск?
Не получается организовать подсчет времени работы исполнительного устройства (для примера – светодиод). Надо чтобы после остановки подсчет останавливался, а после включения – продолжался.
Как в скетч прикрутить паузу/пуск?
C++:
#define BTN 3
#define LED 6
#define periodPIR 1500
boolean btnFlag = false ;
boolean btnFlag1 = false ;
boolean btnFlag2 = false ;
boolean led_flag = false ;
int timer1 = 0;
int timer2 = 0;
int timerRez1 = 0;
void setup() {
Serial.begin(9600);
pinMode(BTN, INPUT_PULLUP);
pinMode(LED, OUTPUT);
}
void loop() {
bool btnState = !digitalRead(BTN);
if (btnState && !btnFlag) {
btnFlag = true;
led_flag = !led_flag;
timer1 = millis();
}
if (btnFlag && millis() - timer1 >= periodPIR) { // задержка на вкл/откл светодиода
digitalWrite(LED, led_flag);
btnFlag1 = !btnFlag1; //флаг о включ светодиода для подсчета времени
btnFlag = false;
}
if (btnFlag1 && !btnFlag2) { //отсчет времени с момента включ светодиода
timer2 = millis();
btnFlag2 = true;
}
if (btnFlag1) { //отсчет времени с момента включ светодиода
timerRez1 = millis() - timer2;
Serial.print("timerRez1_"); Serial.println (timerRez1);
}
}