int LED1[] = {13,12,11};
int LED2[] = {3,2,35};
int LED3[] = {18,19,20};
int LED4[] = {29,31,33};
int reddelay = 5000;
int yellowdelay = 3000;
int greendelay = 5000;
int testTimer = 1000;
int walkDelay = 3000;
const int interruptPin21 = 21 ;
volatile bool isButtonPressed21 = false;
//
void button_pressed21()
{
//Serial.println(isButtonPressed21);
isButtonPressed21 = true;
//Serial.println(isButtonPressed21);
Serial.println("button is SET");
//
}
void ledTesting()
{
for (int i = 0; i < 3 ; i= i+1)
{
digitalWrite(LED1[i], HIGH);
digitalWrite(LED2[i], HIGH);
digitalWrite(LED3[i], HIGH);
digitalWrite(LED4[i], HIGH);
delay(testTimer);
digitalWrite(LED1[i], LOW);
digitalWrite(LED2[i], LOW);
digitalWrite(LED3[i], LOW);
digitalWrite(LED4[i], LOW);
delay(testTimer);
}
}
void setup()
{
Serial.begin(9600);
pinMode(interruptPin21, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interruptPin21), button_pressed21, LOW);
//pin#, ISR, Mode
Serial.println("BEGIN");
//
for (int i = 0; i < 3 ; i= i+1)
{
pinMode(LED1[i], OUTPUT);
pinMode(LED2[i], OUTPUT);
pinMode(LED3[i], OUTPUT);
pinMode(LED4[i], OUTPUT);
}
ledTesting();
}
void loop()
{
//done
digitalWrite(LED1[2], HIGH); // LED1 red light on
digitalWrite(LED2[0], HIGH); // LED2 green light on
digitalWrite(LED3[2], HIGH); // LED3 red light on
digitalWrite(LED4[0], HIGH); // LED4 green light on
delay(greendelay);
//done
digitalWrite(LED1[2], HIGH); // LED1 red light on
digitalWrite(LED2[1], HIGH); // LED2 yellow light on
digitalWrite(LED3[2], HIGH); // LED3 red light on
digitalWrite(LED4[1], HIGH); // LED4 yellow light on
digitalWrite(LED2[0], LOW); // LED2 green light off
digitalWrite(LED4[0], LOW); // LED4 green light off
delay(yellowdelay);
//done
digitalWrite(LED2[2], HIGH); // LED2 red light on
digitalWrite(LED4[2], HIGH); // LED4 red light on
digitalWrite(LED2[1], LOW); // LED2 yellow light off
digitalWrite(LED4[1], LOW); // LED4 yellow light off
digitalWrite(LED1[2], LOW); // LED1 red off
digitalWrite(LED3[2], LOW); // LED3 red off
digitalWrite(LED1[0], HIGH); // LED1 green light on
digitalWrite(LED3[0], HIGH); // LED3 green light on
delay(yellowdelay);
//done
digitalWrite(LED2[2], HIGH); // LED2 red light on
digitalWrite(LED4[2], HIGH); // LED4 red light on
digitalWrite(LED1[2], LOW); // LED1 red light off
digitalWrite(LED3[2], LOW); // LED3 red light off
delay(yellowdelay);
//done
digitalWrite(LED1[1], HIGH); // LED1 yellow light on
digitalWrite(LED3[1], HIGH); // LED3 yellow light on
digitalWrite(LED1[2], LOW); // LED1 red light off
digitalWrite(LED3[2], LOW); // LED3 red light off
digitalWrite(LED1[0], LOW); // LED1 green light off
digitalWrite(LED3[0], LOW); // LED3 green light off
delay(yellowdelay);
//done
digitalWrite(LED2[2], LOW); // LED2 red light off
digitalWrite(LED4[2], LOW); // LED4 red light off
digitalWrite(LED1[1], LOW); // LED1 yellow light off
digitalWrite(LED3[1], LOW); // LED3 yellow light off
//
Serial.println("Button is RE-SET");
if(isButtonPressed21 == true)
{
letsWalkFunction();
/*
//Serial.println(isButtonPressed18);
Serial.println("if - Button is RE-SET");
isButtonPressed21 = false;
//
digitalWrite(LED1[2], HIGH); // LED1 red light on
digitalWrite(LED3[2], HIGH); // LED3 red light on
digitalWrite(LED2[2], HIGH); // LED2 red light on
digitalWrite(LED4[2], HIGH); // LED4 red light on
digitalWrite(LED2[0], LOW); // LED2 green light off
digitalWrite(LED4[0], LOW); // LED4 green light off
}
*/
}
}
void letsWalkFunction()
{
Serial.println("if letsWalkFunction - Button is RE-SET");
isButtonPressed21 = false;
//
digitalWrite(LED1[0], LOW); // LED1 Green light on
digitalWrite(LED1[1], LOW); // LED1 Yellow light on
digitalWrite(LED1[2], HIGH); // LED1 Red light on
digitalWrite(LED2[0], LOW); // LED1 Green light on
digitalWrite(LED2[1], LOW); // LED1 Yellow light on
digitalWrite(LED2[2], HIGH); // LED1 Red light on
digitalWrite(LED3[0], LOW); // LED1 Green light on
digitalWrite(LED3[1], LOW); // LED1 Yellow light on
digitalWrite(LED3[2], HIGH); // LED1 Red light on
digitalWrite(LED4[0], LOW); // LED1 Green light on
digitalWrite(LED4[1], LOW); // LED1 Yellow light on
digitalWrite(LED4[2], HIGH); // LED1 Red light on
delay(walkDelay);
//
digitalWrite(LED2[2], LOW); // LED2 red light off
digitalWrite(LED4[2], LOW); // LED4 red light off
}