unsigned long currentMillis = 0;
unsigned long previousMillis = 0;
bool firstClick;
void setup() {
Serial.begin(115200);
}
void loop() {
if (digitalRead(3)) {
currentMillis = millis();
if (currentMillis - previousMillis >= 200 && !digitalRead(3)) {
//oneclick
Serial.print("1");
previousMillis = currentMillis;
firstClick = true;
} else if (currentMillis - previousMillis >= 200 && digitalRead(3)) {
//DoubleClick
Serial.print("2");
previousMillis = currentMillis;
firstClick = false;
} else if (currentMillis - previousMillis >= 2000 && digitalRead(3)) {
//long click (hold for 2000 ms or 2s)
Serial.print("3");
previousMillis = currentMillis;
}
firstClick = false;
}
}