const int buttonPin = 34;
unsigned long pressStartTime = 0;
unsigned long pressDuration = 0;
bool buttonPressed = false;
bool isPressHandled = false;
void setup() {
pinMode(buttonPin, INPUT_PULLDOWN);
Serial.begin(115200);
Serial.println("Long and Short Button Press Detector Ready!");
}
void loop() {
int buttonState = digitalRead(buttonPin);
if (buttonState == HIGH && !buttonPressed) {
buttonPressed = true;
pressStartTime = millis();
isPressHandled = false;
}
if (buttonState == LOW && buttonPressed) {
pressDuration = millis() - pressStartTime;
buttonPressed = false;
if (!isPressHandled) {
if (pressDuration < 500) {
Serial.println("Short Press Detected");
} else {
Serial.println("Long Press Detected");
}
isPressHandled = true;
}
}
if (!buttonPressed && millis() - pressStartTime > 1500) {
isPressHandled = false;
}
delay(10); // Debounce delay
}