bool buttonValue, oldButtonValue, isButtonPressed = false;
unsigned long currentTime, lastTime = 0;
void setup() {
pinMode(13, OUTPUT);
pinMode(9, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
pinMode(4, OUTPUT);
pinMode(2, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
currentTime = millis();
StartBlinking();
buttonValue = !digitalRead(2);
if (buttonValue == HIGH && oldButtonValue == LOW)
{
isButtonPressed = true;
}
oldButtonValue = buttonValue;
if (currentTime - lastTime > 12500 && isButtonPressed)
{
isButtonPressed = false;
lastTime = currentTime;
}
Serial.print("Button:");
Serial.print(isButtonPressed);
Serial.print("\tCurrent - Last:");
Serial.println(currentTime - lastTime);
}
void StartBlinking()
{
if ((currentTime - lastTime > 0 && currentTime - lastTime < 500) || (currentTime - lastTime > 1000 && currentTime - lastTime < 1500) || (currentTime - lastTime > 2000 && currentTime - lastTime < 2500) || (currentTime - lastTime > 9500))
{
digitalWrite(6, HIGH);
}
else
{
digitalWrite(6, LOW);
}
if ((currentTime - lastTime > 2500 && currentTime - lastTime < 3500) || (currentTime - lastTime > 8500 && currentTime - lastTime < 9500))
{
digitalWrite(9, HIGH);
}
else
{
digitalWrite(9, LOW);
}
if (currentTime - lastTime > 3500 && currentTime - lastTime < 8500)
{
digitalWrite(13, HIGH);
}
else
{
digitalWrite(13, LOW);
}
if ((currentTime - lastTime > 0 && currentTime - lastTime < 3500) || (currentTime - lastTime > 9500))
{
digitalWrite(5, HIGH);
digitalWrite(4, LOW);
}
if((currentTime - lastTime > 3500 && currentTime - lastTime < 9500))
{
digitalWrite(5, LOW);
digitalWrite(4, HIGH);
}
}