const int pinINPUT = 2;
const int pinLED0 = 3;
const int pinLED1 = 4;
const int pinLED2 = 5;
const int pinLED3 = 6;
const int pinLED4 = 7;
const int pinLED5 = 8;
const int pinLED6 = 9;
const int pinREL1 = 10;
const int pinREL2 = 11;
const int pinREL3 = 12;
bool inputState = false;
bool activeState = false;
void setup() {
pinMode(pinINPUT, INPUT);
pinMode(pinLED0, OUTPUT);
pinMode(pinLED1, OUTPUT);
pinMode(pinLED2, OUTPUT);
pinMode(pinLED3, OUTPUT);
pinMode(pinLED4, OUTPUT);
pinMode(pinLED5, OUTPUT);
pinMode(pinLED6, OUTPUT);
pinMode(pinREL1, OUTPUT);
pinMode(pinREL2, OUTPUT);
pinMode(pinREL3, OUTPUT);
//digitalWrite(pinINPUT, HIGH);
digitalWrite(pinREL1, HIGH); // <---
digitalWrite(pinREL2, HIGH); // <---
digitalWrite(pinREL3, HIGH); // <---
}
void loop() {
inputState = digitalRead(pinINPUT);
if (inputState == HIGH) { // SWAP?
digitalWrite(pinLED0, LOW);
countDown();
} else {
digitalWrite(pinLED0, HIGH);
turnOffLEDs();
digitalWrite(pinREL1, HIGH); // <---
}
}
void countDown() {
for (int i = 10; i >= 0; i--) {
if (digitalRead(pinINPUT) == LOW) {
turnOffLEDs();
if (activeState == true) {
digitalWrite(pinREL1, HIGH); // <---
digitalWrite(pinREL3, LOW); // <---
delay(300);
digitalWrite(pinREL3, HIGH); // <---
digitalWrite(pinLED6, LOW);
}
activeState = false;
return;
}
if (i == 0) {
digitalWrite(pinLED6, HIGH);
activeState = true;
digitalWrite(pinREL1, LOW); // <---
digitalWrite(pinREL2, LOW); // <---
delay(300);
digitalWrite(pinREL2, HIGH); // <---
return;
}
turnOnLED(i);
delay(1000);
}
}
void turnOnLED(int numLED) {
switch (numLED) {
case 10:
digitalWrite(pinLED1, HIGH);
break;
case 8:
digitalWrite(pinLED2, HIGH);
break;
case 6:
digitalWrite(pinLED3, HIGH);
break;
case 4:
digitalWrite(pinLED4, HIGH);
break;
case 2:
digitalWrite(pinLED5, HIGH);
break;
}
}
void turnOffLEDs() {
digitalWrite(pinLED1, LOW);
digitalWrite(pinLED2, LOW);
digitalWrite(pinLED3, LOW);
digitalWrite(pinLED4, LOW);
digitalWrite(pinLED5, LOW);
}