#define LED 13
#define BUTTON 12
unsigned long pressStartTime = 0;
unsigned long ledOnTime = 0;
int state = 0;
void setup() {
Serial.begin(9600);
pinMode(LED, OUTPUT);
pinMode(BUTTON, INPUT_PULLUP);
}
void loop() {
int buttonState = digitalRead(BUTTON);
if (buttonState == LOW) {
if (pressStartTime == 0) {
pressStartTime = millis();
}
} else {
if (pressStartTime != 0 && millis() - pressStartTime < 500) {
Serial.print(".");
state = 1;
ledOnTime = millis() + 1000;
} else if (pressStartTime != 0 && millis() - pressStartTime >= 500) {
Serial.print("-");
state = 2;
ledOnTime = millis() + 5000;
}
pressStartTime = 0;
}
switch (state) {
case 0:
digitalWrite(LED, LOW);
break;
case 1:
digitalWrite(LED, HIGH);
while (millis() < ledOnTime) {
}
digitalWrite(LED, LOW);
state = 0;
break;
case 2:
digitalWrite(LED, HIGH);
while (millis() < ledOnTime) {
}
digitalWrite(LED, LOW);
state = 0;
break;
}
}