//Kristelle Milca
//BUTTON TRAFFIC LIGHT
#define BUTTON_PIN 27 //ESP32 pin GIOP27,which connected to button
#define LIGHT_GREEN 14 // ESP32 pin GIOP14,which connected to led
#define LIGHT_YELLOW 12 // ESP32 pin GIOP12,which connected to led
#define LIGHT_RED 13 // ESP32 pin GIOP13,which connected to led
#define LIGHT_GREEN_PEDESTRIANS 15 // ESP32 pin GIOP15,which connected to led
#define LIGHT_RED_PEDESTRIANS 2// ESP32 pin GIOP2,which connected to led
#define BUZZER_PIN 4//ESP32 pin GIOP2,which connected to buzzer
//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(LIGHT_GREEN,OUTPUT); //initialize the button pin as an pull up input
pinMode(LIGHT_YELLOW,OUTPUT); //initialize the button pin as an pull up input
pinMode(LIGHT_RED,OUTPUT); //initialize the button pin as an pull up input
pinMode(LIGHT_GREEN_PEDESTRIANS,OUTPUT); //initialize the button pin as an pull up input
pinMode(LIGHT_RED_PEDESTRIANS,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);// set ESP32 pin to input pull-up mode
pinMode(BUZZER_PIN, OUTPUT);// set ESP32 pin to output mode
}
void loop() {
//read the state of the button value
int button_state = digitalRead(BUTTON_PIN);
//control LED according to the state of button
if (button_state == LOW)//if button is presssed
{
digitalWrite(LIGHT_GREEN,HIGH);//turn on led
delay(1000);
digitalWrite(LIGHT_GREEN,LOW);//turn off led
digitalWrite(LIGHT_YELLOW,LOW);//turn off led
digitalWrite(LIGHT_YELLOW,HIGH);//turn on led
delay(1000);
digitalWrite(LIGHT_YELLOW,LOW);//turn off led
digitalWrite(LIGHT_RED_PEDESTRIANS,LOW);//turn off led
// put your main code here, to run repeatedly
digitalWrite(LIGHT_RED,HIGH);//turn on led
digitalWrite(LIGHT_GREEN_PEDESTRIANS,HIGH);//turn on led
delay(5000);
digitalWrite(BUZZER_PIN, HIGH);// turn on buzzer
digitalWrite(LIGHT_GREEN_PEDESTRIANS,LOW);//turn off led
digitalWrite(LIGHT_GREEN_PEDESTRIANS,HIGH);//turn on led
delay(10);
digitalWrite(BUZZER_PIN, HIGH);// turn on buzzer
digitalWrite(LIGHT_GREEN_PEDESTRIANS,LOW);//turn off led
delay(500);
digitalWrite(LIGHT_GREEN_PEDESTRIANS,HIGH);//turn on led
delay(10);
digitalWrite(BUZZER_PIN, HIGH);// turn on buzzer
digitalWrite(LIGHT_GREEN_PEDESTRIANS,LOW);//turn off led
delay(500);
digitalWrite(LIGHT_GREEN_PEDESTRIANS,HIGH);//turn on led
delay(10);
digitalWrite(BUZZER_PIN, HIGH);// turn on buzzer
digitalWrite(LIGHT_GREEN_PEDESTRIANS,LOW);//turn off led
delay(500);
digitalWrite(LIGHT_GREEN_PEDESTRIANS,HIGH);//turn on led
delay(10);
digitalWrite(BUZZER_PIN, HIGH);// turn on buzzer
digitalWrite(LIGHT_GREEN_PEDESTRIANS,LOW);//turn off led
delay(500);
digitalWrite(LIGHT_GREEN_PEDESTRIANS,HIGH);//turn on led
delay(10);
digitalWrite(BUZZER_PIN, HIGH);// turn on buzzer
digitalWrite(LIGHT_GREEN_PEDESTRIANS,LOW);//turn off led
delay(500);
digitalWrite(LIGHT_GREEN_PEDESTRIANS,HIGH);//turn on led
delay(10);
digitalWrite(BUZZER_PIN, HIGH);// turn on buzzer
digitalWrite(LIGHT_GREEN_PEDESTRIANS,LOW);//turn off led
delay(500);
digitalWrite(LIGHT_RED,LOW);//turn off led
digitalWrite(LIGHT_GREEN_PEDESTRIANS,LOW);//turn off led
digitalWrite(LIGHT_YELLOW,LOW);//turn off led
digitalWrite(LIGHT_RED_PEDESTRIANS,HIGH);//turn on led
digitalWrite(LIGHT_GREEN,HIGH);//turn on led
delay(1000);
digitalWrite(LIGHT_RED_PEDESTRIANS,HIGH);//turn on led
delay(1000);
digitalWrite(BUZZER_PIN, HIGH);// turn on buzzer
}
else
if (button_state == HIGH) // control LED according to the state of button
{
digitalWrite(LIGHT_GREEN,LOW);//turn off led
digitalWrite(LIGHT_GREEN_PEDESTRIANS,LOW);//turn off led
digitalWrite(LIGHT_RED_PEDESTRIANS,HIGH);//turn on led
digitalWrite(BUZZER_PIN, LOW);// turn off buzzer
digitalWrite(LIGHT_GREEN,HIGH);//turn on led
delay(1000);
digitalWrite(BUZZER_PIN, LOW);// turn off buzzer
digitalWrite(LIGHT_GREEN,LOW);//turn off led
digitalWrite(LIGHT_YELLOW,HIGH);//turn on led
delay(1000);
digitalWrite(BUZZER_PIN, LOW);// turn off buzzer
digitalWrite(LIGHT_YELLOW,LOW);//turn off led
digitalWrite(LIGHT_RED,HIGH);//turn on led
delay(1000);
digitalWrite(BUZZER_PIN, LOW);// turn off buzzer
digitalWrite(LIGHT_RED,LOW);//turn off led
delay(1000);
digitalWrite(LIGHT_YELLOW,LOW);//turn off led
digitalWrite(LIGHT_GREEN,HIGH);//turn on led
digitalWrite(BUZZER_PIN, LOW); // turn off buzzer
digitalWrite(LIGHT_GREEN,LOW);//turn off led
}
}