// for traffic light 1
int redPin1 = 2; // connect red LED to digital pin 2
int yellowPin1 = 3; // connect yellow LED to digital pin 3
int greenPin1 = 4; // connect green LED to digital pin 4
// for traffic light 2
int greenPin2 = 5; // connect green LED to digital pin 5
int yellowPin2 = 6; // connect yellow LED to digital pin 6
int redPin2 = 7; // connect red LED to digital pin 7
// for traffic light 3
int greenPin3 = 8; // connect green LED to digital pin 8
int yellowPin3 = 9; // connect yellow LED to digital pin 9
int redPin3 = 10; // connect red LED to digital pin 10
void setup() {
pinMode(redPin1, OUTPUT);
pinMode(yellowPin1, OUTPUT);
pinMode(greenPin1, OUTPUT);
pinMode(redPin2, OUTPUT);
pinMode(yellowPin2, OUTPUT);
pinMode(greenPin2, OUTPUT);
pinMode(redPin3, OUTPUT);
pinMode(yellowPin3, OUTPUT);
pinMode(greenPin3, OUTPUT);
}
void loop() {
// rule 1
digitalWrite(greenPin1, HIGH);
digitalWrite(redPin2, HIGH);
digitalWrite(greenPin3, HIGH);
digitalWrite(redPin1, LOW);
digitalWrite(yellowPin1, LOW);
digitalWrite(yellowPin2, LOW);
digitalWrite(greenPin2, LOW);
digitalWrite(redPin3, LOW);
digitalWrite(yellowPin3, LOW);
delay(25000); // wait 25 seconds
// sub-rule 1
digitalWrite(yellowPin1, HIGH);
digitalWrite(redPin2, HIGH);
digitalWrite(yellowPin3, HIGH);
digitalWrite(redPin1, LOW);
digitalWrite(greenPin1, LOW);
digitalWrite(yellowPin2, LOW);
digitalWrite(greenPin2, LOW);
digitalWrite(redPin3, LOW);
digitalWrite(greenPin3, LOW);
delay(5000); // wait 5
// rule 2
//sub-rule 2-1
digitalWrite(redPin1, HIGH);
digitalWrite(yellowPin2, HIGH);
digitalWrite(redPin3, HIGH);
digitalWrite(yellowPin1, LOW);
digitalWrite(greenPin1, LOW);
digitalWrite(redPin2, LOW);
digitalWrite(greenPin2, LOW);
digitalWrite(yellowPin3, LOW);
digitalWrite(greenPin3, LOW);
delay(5000); // wait 5
//sub-rule 2-2
digitalWrite(redPin1, HIGH);
digitalWrite(greenPin2, HIGH);
digitalWrite(redPin3, HIGH);
digitalWrite(yellowPin1, LOW);
digitalWrite(greenPin1, LOW);
digitalWrite(redPin2, LOW);
digitalWrite(yellowPin2, LOW);
digitalWrite(yellowPin3, LOW);
digitalWrite(greenPin3, LOW);
delay(20000); // wait 20
//sub-rule 2-3
digitalWrite(redPin1, HIGH);
digitalWrite(yellowPin2, HIGH);
digitalWrite(redPin3, HIGH);
digitalWrite(yellowPin1, LOW);
digitalWrite(greenPin1, LOW);
digitalWrite(redPin2, LOW);
digitalWrite(greenPin2, LOW);
digitalWrite(yellowPin3, LOW);
digitalWrite(greenPin3, LOW);
delay(5000); // wait 5
//Rule -3
//sub-rule 3-1
digitalWrite(yellowPin1, HIGH);
digitalWrite(redPin2, HIGH);
digitalWrite(yellowPin3, HIGH);
digitalWrite(redPin1, LOW);
digitalWrite(greenPin1, LOW);
digitalWrite(yellowPin2, LOW);
digitalWrite(greenPin2, LOW);
digitalWrite(redPin3, LOW);
digitalWrite(greenPin3, LOW);
delay(5000); // wait 5
//sub-rule 3-2
digitalWrite(greenPin1, HIGH);
digitalWrite(redPin2, HIGH);
digitalWrite(greenPin3, HIGH);
digitalWrite(yellowPin1, LOW);
digitalWrite(redPin1, LOW);
digitalWrite(yellowPin2, LOW);
digitalWrite(greenPin2, LOW);
digitalWrite(redPin3, LOW);
digitalWrite(yellowPin3, LOW);
delay(20000); // wait 20
//sub-rule 3-3
digitalWrite(yellowPin1, HIGH);
digitalWrite(redPin2, HIGH);
digitalWrite(yellowPin3, HIGH);
digitalWrite(greenPin1, LOW);
digitalWrite(redPin1, LOW);
digitalWrite(yellowPin2, LOW);
digitalWrite(greenPin2, LOW);
digitalWrite(redPin3, LOW);
digitalWrite(greenPin3, LOW);
delay(5000); // wait 5
// Rule -4
//sub-rule 4-1
digitalWrite(redPin1, HIGH);
digitalWrite(yellowPin2, HIGH);
digitalWrite(redPin3, HIGH);
digitalWrite(greenPin1, LOW);
digitalWrite(yellowPin1, LOW);
digitalWrite(redPin2, LOW);
digitalWrite(greenPin2, LOW);
digitalWrite(greenPin3, LOW);
digitalWrite(yellowPin3, LOW);
delay(5000); // wait 5
//sub-rule 4-2
digitalWrite(redPin1, HIGH);
digitalWrite(greenPin2, HIGH);
digitalWrite(redPin3, HIGH);
digitalWrite(greenPin1, LOW);
digitalWrite(yellowPin1, LOW);
digitalWrite(redPin2, LOW);
digitalWrite(yellowPin2, LOW);
digitalWrite(redPin3, LOW);
digitalWrite(yellowPin3, LOW);
delay(20000); // wait 20
//sub-rule 4-3
digitalWrite(redPin1, HIGH);
digitalWrite(yellowPin2, HIGH);
digitalWrite(redPin3, HIGH);
digitalWrite(greenPin1, LOW);
digitalWrite(yellowPin1, LOW);
digitalWrite(redPin2, LOW);
digitalWrite(greenPin2, LOW);
digitalWrite(redPin3, LOW);
digitalWrite(yellowPin3, LOW);
delay(5000); // wait 5
//sub-rule 4-4
digitalWrite(yellowPin1, HIGH);
digitalWrite(redPin2, HIGH);
digitalWrite(yellowPin3, HIGH);
digitalWrite(greenPin1, LOW);
digitalWrite(redPin1, LOW);
digitalWrite(yellowPin2, LOW);
digitalWrite(greenPin2, LOW);
digitalWrite(redPin3, LOW);
digitalWrite(greenPin3, LOW);
delay(5000); // wait 5
}