//MUHAMMAD ANAS FARHAN BIN SHAHRIN
//12 march 2022
//BUTTON TRAFFIC LIGHT
//16DTK20F1026
#define BUTTON_PIN 27
//ESP32 pin GIOP14,which connected to button
#define GREEN_LIGHT 13
// ESP32 pin GIOP12,which connected to led
#define YELLOW_LIGHT 14
// ESP32 pin GIOP12,which connected to led
#define RED_LIGHT 12
// ESP32 pin GIOP12,which connected to led
#define PEDESTRIAN_GREEN_LIGHT 26
// ESP32 pin GIOP12,which connected to led
#define PEDESTRIAN_RED_LIGHT 25
// ESP32 pin GIOP12,which connected to led
//The below are variables, which can be changed
int button_state = 0;
//Variable for reading the button status
void setup() {
//initialize the LED pin as an output
pinMode(GREEN_LIGHT,OUTPUT);
//initialize the LED pin as an output
pinMode(YELLOW_LIGHT,OUTPUT);
//initialize the LED pin as an output
pinMode(RED_LIGHT,OUTPUT);
//initialize the LED pin as an output
pinMode(PEDESTRIAN_GREEN_LIGHT,OUTPUT);
//initialize the LED pin as an output
pinMode(PEDESTRIAN_RED_LIGHT,OUTPUT);
//initialize the button pin as an pull up input
//the pull up input will be HIGH when the button is open and LOW when the button is close
pinMode(BUTTON_PIN, INPUT_PULLUP);
}
void loop() {
//read the state of the button value
button_state = digitalRead(BUTTON_PIN);
//control LED according to the state of button
if (button_state == LOW)//if button is presssed
{
digitalWrite(GREEN_LIGHT,HIGH);//turn on led
delay(2000);
digitalWrite(GREEN_LIGHT,LOW);//turn off led
digitalWrite(YELLOW_LIGHT,HIGH);//turn on led
delay(2000);
digitalWrite(YELLOW_LIGHT,LOW);//turn off led
digitalWrite(PEDESTRIAN_RED_LIGHT,LOW);//turn off led
digitalWrite(RED_LIGHT,HIGH);//turn on led
digitalWrite(PEDESTRIAN_GREEN_LIGHT,HIGH);//turn on led
delay(5000);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,LOW);//turn off led
digitalWrite(PEDESTRIAN_GREEN_LIGHT,HIGH);//turn on led
delay(10);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,LOW);//turn off led
delay(490);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,HIGH);//turn on led
delay(10);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,LOW);//turn off led
delay(490);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,HIGH);//turn on led
delay(10);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,LOW);//turn off led
delay(490);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,HIGH);//turn on led
delay(10);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,LOW);//turn off led
delay(490);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,HIGH);//turn on led
delay(10);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,LOW);//turn off led
delay(490);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,HIGH);//turn on led
delay(10);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,LOW);//turn off led
delay(490);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,HIGH);//turn on led
delay(10);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,LOW);//turn off led
delay(490);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,HIGH);//turn on led
delay(10);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,LOW);//turn off led
delay(490);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,HIGH);//turn on led
delay(10);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,LOW);//turn off led
delay(490);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,HIGH);//turn on led
delay(10);
digitalWrite(PEDESTRIAN_GREEN_LIGHT,LOW);//turn off led
delay(490);
digitalWrite(RED_LIGHT,LOW);//turn off led
digitalWrite(PEDESTRIAN_GREEN_LIGHT,LOW);//turn off led
digitalWrite(YELLOW_LIGHT,HIGH);//turn on led
delay(2000);
digitalWrite(YELLOW_LIGHT,LOW);//turn off led
}
else
{
digitalWrite(PEDESTRIAN_GREEN_LIGHT,LOW);//turn off led
digitalWrite(PEDESTRIAN_RED_LIGHT,HIGH);//turn on led
digitalWrite(GREEN_LIGHT,HIGH);//turn on led
delay(2000);
digitalWrite(GREEN_LIGHT,LOW);//turn off led
digitalWrite(YELLOW_LIGHT,HIGH);//turn on led
delay(2000);
digitalWrite(YELLOW_LIGHT,LOW);//turn off led
digitalWrite(RED_LIGHT,HIGH);//turn on led
delay(2000);
digitalWrite(RED_LIGHT,LOW);//turn off led
digitalWrite(YELLOW_LIGHT,HIGH);//turn on led
delay(2000);
digitalWrite(YELLOW_LIGHT,LOW);//turn off led
}
}