int LED[8];
int Sw[4] {0, 11, 12, 13};
int Da;
void debugBlock (int i) {
Da=i;
if(digitalRead(Sw[1])==HIGH) { Da=Da+1; }
if(digitalRead(Sw[2])==HIGH) { Da=Da+2; }
if(digitalRead(Sw[3])==HIGH) { Da=Da+4; }
} //end debug block
void allLED (bool State) {
for (int i=0; i<=7; i++) {
pinMode(LED[i], OUTPUT);
digitalWrite(LED[i], State);
}
}
void flash(int time) {
allLED (HIGH);
delay(time);
allLED (LOW);
delay(time);
}
void setup() {
// put your setup code here, to run once:
for (int i=0; i<=7; i++) {
LED[i]=i+3; //LED Pins start at 3 (3,4,5,6,7,8,9,10)
pinMode(LED[i], OUTPUT);
digitalWrite(LED[i], HIGH); //Turn each light on as LEDs are defined
delay(100);
}
flash (800);
flash (800);
flash (800);
for (int i=1; i<=3;i++) { //Switches start at pin 10+1 (11,12,13) 10 already used for LED
//Sw[i]=i+10; Already set in const at start
pinMode(Sw[i], INPUT);
digitalWrite(LED[i], digitalRead(Sw[i])); //Show each Switch as it is defined
delay(100);
}
flash (800);
flash (800);
}
void loop() {
// put your main code here, to run repeatedly:
Da=0;
//for (int i=1; i<=3; i++) { //Read each Switch
// if(digitalRead(Sw[i])==HIGH) {
// Da=Da + 2^(i-1); //Add 1 for Sw1, 2 for Sw2, 4 for Sw3.
// } //Gives Binary number for 3 switches
//}
debugBlock ( 0 ); //remove if not needed
allLED (HIGH);
delay (300);
allLED (LOW);
digitalWrite(LED[Da], HIGH); //Turn on correct LED
delay(300); //Wait a bit
} //Loop program, do it again...