/*
* This ESP32 code is created by esp32io.com
*
* This ESP32 code is released in the public domain
*
* For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-traffic-light
*/
#define PIN_RED 13 // The ESP32 pin GPIO25 connected to R pin of traffic light module
#define PIN_YELLOW 12 // The ESP32 pin GPIO26 connected to Y pin of traffic light module
#define PIN_GREEN 14 // The ESP32 pin GPIO27 connected to G pin of traffic light module
#define PIN_RED1 34 // The ESP32 pin GPIO25 connected to R pin of traffic light module
#define PIN_YELLOW1 35 // The ESP32 pin GPIO26 connected to Y pin of traffic light module
#define PIN_GREEN1 32 // The ESP32 pin GPIO27 connected to G pin of traffic light module
#define PIN_RED2 21 // The ESP32 pin GPIO25 connected to R pin of traffic light module
#define PIN_YELLOW2 19 // The ESP32 pin GPIO26 connected to Y pin of traffic light module
#define PIN_GREEN2 18 // The ESP32 pin GPIO27 connected to G pin of traffic light module
#define RED_TIME 4000 // RED time in millisecond
#define YELLOW_TIME 4000 // YELLOW time in millisecond
#define GREEN_TIME 4000 // GREEN time in millisecond
#define RED_TIME1 4000 // RED time in millisecond
#define YELLOW_TIME1 4000 // YELLOW time in millisecond
#define GREEN_TIME1 4000 // GREEN time in millisecond
#define RED_TIME2 4000 // RED time in millisecond
#define YELLOW_TIME2 4000 // YELLOW time in millisecond
#define GREEN_TIME3 4000 // GREEN time in millisecond
void setup() {
pinMode(PIN_RED, OUTPUT);
pinMode(PIN_YELLOW, OUTPUT);
pinMode(PIN_GREEN, OUTPUT);
pinMode(PIN_RED1, OUTPUT);
pinMode(PIN_YELLOW1, OUTPUT);
pinMode(PIN_GREEN1, OUTPUT);
pinMode(PIN_RED2, OUTPUT);
pinMode(PIN_YELLOW2, OUTPUT);
pinMode(PIN_GREEN2, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
// red light on
digitalWrite(PIN_RED, HIGH);
digitalWrite(PIN_YELLOW, LOW);
digitalWrite(PIN_GREEN, LOW);
digitalWrite(PIN_RED1, LOW); // turn on
digitalWrite(PIN_YELLOW1, HIGH); // turn off
digitalWrite(PIN_GREEN1, LOW);
digitalWrite(PIN_RED2, LOW); // turn on
digitalWrite(PIN_YELLOW2, LOW); // turn off
digitalWrite(PIN_GREEN2, HIGH);
delay(RED_TIME);
delay(YELLOW1_TIME);
delay(GREEN2_TIME);
// yellow light on
digitalWrite(PIN_RED, LOW); // turn off
digitalWrite(PIN_YELLOW, LOW); // turn on
digitalWrite(PIN_GREEN, LOW); // turn off
digitalWrite(PIN_RED1, LOW); // turn off
digitalWrite(PIN_YELLOW1, HIGH); // turn on
digitalWrite(PIN_GREEN1, LOW); // turn off
digitalWrite(PIN_RED2, LOW); // turn off
digitalWrite(PIN_YELLOW2, LOw); // turn on
digitalWrite(PIN_GREEN2, LOW); // turn off
delay(YELLOW_TIME1);
// green light on
digitalWrite(PIN_RED, LOW); // turn off
digitalWrite(PIN_YELLOW, LOW); // turn off
digitalWrite(PIN_GREEN, LOW); // turn on
digitalWrite(PIN_RED1, LOW); // turn off
digitalWrite(PIN_YELLOW1, LOW); // turn off
digitalWrite(PIN_GREEN1, LOW); // turn on
digitalWrite(PIN_RED2, LOW); // turn off
digitalWrite(PIN_YELLOW2, LOW); // turn off
digitalWrite(PIN_GREEN2, HIGH); // turn on
delay(GREEN_TIME2);
digitalWrite(PIN_RED, LOW); // turn off
digitalWrite(PIN_YELLOW, HIGH); // turn off
digitalWrite(PIN_GREEN, LOW); // turn on
digitalWrite(PIN_RED1, LOW); // turn off
digitalWrite(PIN_YELLOW1, LOW); // turn off
digitalWrite(PIN_GREEN1, LOW); // turn on
digitalWrite(PIN_RED2, LOW); // turn off
digitalWrite(PIN_YELLOW2, LOW); // turn off
digitalWrite(PIN_GREEN2, LOW); // turn on
digitalWrite(PIN_RED, LOW); // turn off
digitalWrite(PIN_YELLOW, LOW); // turn off
digitalWrite(PIN_GREEN, LOW); // turn on
digitalWrite(PIN_RED1, LOW); // turn off
digitalWrite(PIN_YELLOW1, LOW); // turn off
digitalWrite(PIN_GREEN1, LOW); // turn on
digitalWrite(PIN_RED2, LOW); // turn off
digitalWrite(PIN_YELLOW2, LOW); // turn off
digitalWrite(PIN_GREEN2, HIGH); // turn on
digitalWrite(PIN_RED, LOW); // turn off
digitalWrite(PIN_YELLOW, LOW); // turn off
digitalWrite(PIN_GREEN, HIGH); // turn on
digitalWrite(PIN_RED1, LOW); // turn off
digitalWrite(PIN_YELLOW1, LOW); // turn off
digitalWrite(PIN_GREEN1, LOW); // turn on
digitalWrite(PIN_RED2, LOW); // turn off
digitalWrite(PIN_YELLOW2, LOW); // turn off
digitalWrite(PIN_GREEN2, LOW); // turn on
digitalWrite(PIN_RED, LOW); // turn off
digitalWrite(PIN_YELLOW, LOW); // turn off
digitalWrite(PIN_GREEN, HIGH); // turn on
digitalWrite(PIN_RED1, LOW); // turn off
digitalWrite(PIN_YELLOW1, LOW); // turn off
digitalWrite(PIN_GREEN1, HIGH); // turn on
digitalWrite(PIN_RED2, LOW); // turn off
digitalWrite(PIN_YELLOW2, LOW); // turn off
digitalWrite(PIN_GREEN, HIGH); // turn on
}