void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
Serial.println("This is a 4 way traffic light signal.");
Serial.println("Follow the rules for your safety!");
const int red_left = 23;
const int yellow_left = 22;
const int green_left = 21;
const int red_up = 0;
const int yellow_up = 2;
const int green_up = 15;
const int red_right = 19;
const int yellow_right = 18;
const int green_right = 5;
const int red_down = 17;
const int yellow_down = 16;
const int green_down = 4;
const int go = 4000;
const int wait = 2000;
pinMode(red_left, OUTPUT);
pinMode(yellow_left, OUTPUT);
pinMode(green_left, OUTPUT);
pinMode(red_up, OUTPUT);
pinMode(yellow_up, OUTPUT);
pinMode(green_up, OUTPUT);
pinMode(red_right, OUTPUT);
pinMode(yellow_right, OUTPUT);
pinMode(green_right, OUTPUT);
pinMode(red_down, OUTPUT);
pinMode(yellow_down, OUTPUT);
pinMode(green_down, OUTPUT);
}
void loop() {
const int red_left = 23;
const int yellow_left = 22;
const int green_left = 21;
const int red_up = 0;
const int yellow_up = 2;
const int green_up = 15;
const int red_right = 19;
const int yellow_right = 18;
const int green_right = 5;
const int red_down = 17;
const int yellow_down = 16;
const int green_down = 4;
const int go = 4000;
const int wait = 2000;
// put your main code here, to run repeatedly:
delay(10); // this speeds up the simulation
// green left
digitalWrite(red_left, LOW);
digitalWrite(yellow_left, LOW);
digitalWrite(green_left, HIGH);
digitalWrite(red_up, HIGH);
digitalWrite(yellow_up, LOW);
digitalWrite(green_up, LOW);
digitalWrite(red_right, HIGH);
digitalWrite(yellow_right, LOW);
digitalWrite(green_right, LOW);
digitalWrite(red_down, HIGH);
digitalWrite(yellow_down, LOW);
digitalWrite(green_down, LOW);
delay(go);
// wait yellow left,up
digitalWrite(red_left, LOW);
digitalWrite(yellow_left, HIGH);
digitalWrite(green_left, LOW);
digitalWrite(red_up, LOW);
digitalWrite(yellow_up, HIGH);
digitalWrite(green_up, LOW);
digitalWrite(red_right, HIGH);
digitalWrite(yellow_right, LOW);
digitalWrite(green_right, LOW);
digitalWrite(red_down, HIGH);
digitalWrite(yellow_down, LOW);
digitalWrite(green_down, LOW);
delay(wait);
// green up
digitalWrite(red_left, HIGH);
digitalWrite(yellow_left, LOW);
digitalWrite(green_left, LOW);
digitalWrite(red_up, LOW);
digitalWrite(yellow_up, LOW);
digitalWrite(green_up, HIGH);
digitalWrite(red_right, HIGH);
digitalWrite(yellow_right, LOW);
digitalWrite(green_right, LOW);
digitalWrite(red_down, HIGH);
digitalWrite(yellow_down, LOW);
digitalWrite(green_down, LOW);
delay(go);
// wait yellow up,right
digitalWrite(red_left, HIGH);
digitalWrite(yellow_left, LOW);
digitalWrite(green_left, LOW);
digitalWrite(red_up, LOW);
digitalWrite(yellow_up, HIGH);
digitalWrite(green_up, LOW);
digitalWrite(red_right, LOW);
digitalWrite(yellow_right, HIGH);
digitalWrite(green_right, LOW);
digitalWrite(red_down, HIGH);
digitalWrite(yellow_down, LOW);
digitalWrite(green_down, LOW);
delay(wait);
// green right
digitalWrite(red_left, HIGH);
digitalWrite(yellow_left, LOW);
digitalWrite(green_left, LOW);
digitalWrite(red_up, HIGH);
digitalWrite(yellow_up, LOW);
digitalWrite(green_up, LOW);
digitalWrite(red_right, LOW);
digitalWrite(yellow_right, LOW);
digitalWrite(green_right, HIGH);
digitalWrite(red_down, HIGH);
digitalWrite(yellow_down, LOW);
digitalWrite(green_down, LOW);
delay(go);
// wait yellow right,down
digitalWrite(red_left, HIGH);
digitalWrite(yellow_left, LOW);
digitalWrite(green_left, LOW);
digitalWrite(red_up, HIGH);
digitalWrite(yellow_up, LOW);
digitalWrite(green_up, LOW);
digitalWrite(red_right, LOW);
digitalWrite(yellow_right, HIGH);
digitalWrite(green_right, LOW);
digitalWrite(red_down, LOW);
digitalWrite(yellow_down, HIGH);
digitalWrite(green_down, LOW);
delay(wait);
// green down
digitalWrite(red_left, HIGH);
digitalWrite(yellow_left, LOW);
digitalWrite(green_left, LOW);
digitalWrite(red_up, HIGH);
digitalWrite(yellow_up, LOW);
digitalWrite(green_up, LOW);
digitalWrite(red_right, HIGH);
digitalWrite(yellow_right, LOW);
digitalWrite(green_right, LOW);
digitalWrite(red_down, LOW);
digitalWrite(yellow_down, LOW);
digitalWrite(green_down, HIGH);
delay(go);
// wait yellow down,left
digitalWrite(red_left, LOW);
digitalWrite(yellow_left, HIGH);
digitalWrite(green_left, LOW);
digitalWrite(red_up, HIGH);
digitalWrite(yellow_up, LOW);
digitalWrite(green_up, LOW);
digitalWrite(red_right, HIGH);
digitalWrite(yellow_right, LOW);
digitalWrite(green_right, LOW);
digitalWrite(red_down, LOW);
digitalWrite(yellow_down, HIGH);
digitalWrite(green_down, LOW);
delay(wait);
}