const int signalButtonPin = 34;
const int skipMinTrig = 4095;
const int skipMaxTrig = 4095;
int signalButtonValue = 0;
const int noButtonPressed = 4094;
bool buttonLOW = true;
int buttonCounter = 0;
int timeButtonCounter = 0;
bool timerActive = false;
unsigned long timerStartTime = 0;
unsigned long timerDuration = 500;
void setup() {
Serial.begin(115200);
pinMode(signalButtonPin, INPUT);
buttonCounter = 0;
}
void loop() {
signalButtonValue = analogRead(signalButtonPin);
if (signalButtonValue <= noButtonPressed) {
buttonLOW = true;
}
if ((signalButtonValue >= skipMinTrig) && (signalButtonValue <= skipMaxTrig)) {
buttonLOW = false;
buttonCounter++;
}
if (buttonCounter == 1) {
timeButtonCounter++;
timerStartTime = millis();
Serial.println("Button pressed");
}
if (buttonLOW) {
buttonCounter = 0;
}
if (timeButtonCounter >= 1 && millis() - timerStartTime >= timerDuration) {
Serial.println("Timeout");
Serial.print("Number of clicks: ");
Serial.println(timeButtonCounter);
if (timeButtonCounter == 1) {
Serial.println("single press");
} else if (timeButtonCounter == 2) {
Serial.println("double press");
} else if (timeButtonCounter >= 3) {
Serial.println("triple press");
}
timeButtonCounter = 0;
timerStartTime = 0;
}
delay(50);
}