#include <GyverSegment>
#define SENSOR_PIN 6
#define BTN_RESET 3
void setup() {
pinMode(SENSOR_PIN, INPUT);
pinMode(BTN_RESET, INPUT);
Serial.begin(9600);
}
int counter = 100;
bool flagButton = false;
bool flagSens = false;
uint32_t btnTimer = 0;
uint32_t sensTimer = 0;
void loop() {
int sens = digitalRead(SENSOR_PIN);
int oldCounter = counter;
butClick();
sensor();
if(oldCounter!= counter){
Serial.println(counter);
}
}
void butClick() {
bool btnState = digitalRead(BTN_RESET);
if (btnState && !flagButton && millis() - btnTimer > 100) { // обработчик нажатия
flagButton = true;
btnTimer = millis();
counter = 0;
}
if (!btnState && flagButton && millis() - btnTimer > 100) { // обработчик отпускания
flagButton = false;
btnTimer = millis();
}
}
void sensor() {
bool sensorState = digitalRead(SENSOR_PIN);
if (sensorState && !flagSens && millis() - sensTimer > 250) { // обработчик прерывания луча
flagSens = true;
sensTimer = millis();
counter++;
}
if (!sensorState && flagSens && millis() - sensTimer > 250) { // обработчик восстановления свечения луча
flagSens = false;
sensTimer = millis();
}
}