int r1 = 13;
int y1 = 12;
int g1 = 11;
int r2 = 10;
int y2 = 9;
int g2 = 8;
int r3 = 40;
int y3 = 42;
int g3 = 44;
int r4 = 48;
int y4 = 50;
int g4 = 52;
int isobstacle1 = HIGH;
int isobstacle2 = HIGH;
int isobstacle3 = HIGH;
int isobstacle4 = HIGH;
//FOR NEAR OBJECTS
int obstacle_pin1= A2;
int obstacle_pin2= A3;
int obstacle_pin3= A4;
int obstacle_pin4= A5;
//FOR FAR OBJECTS
int obstacle_pin1a= A6;
int obstacle_pin2a= A7;
int obstacle_pin3a= A8;
int obstacle_pin4a= A9;
void setup(){
pinMode(r1, OUTPUT);
pinMode(y1, OUTPUT);
pinMode(g1, OUTPUT);
pinMode(r2, OUTPUT);
pinMode(y2, OUTPUT);
pinMode(g2, OUTPUT);
pinMode(r3, OUTPUT);
pinMode(y3, OUTPUT);
pinMode(g3, OUTPUT);
pinMode(r4, OUTPUT);
pinMode(y4, OUTPUT);
pinMode(g4, OUTPUT);
pinMode(obstacle_pin1, INPUT);
pinMode(obstacle_pin2, INPUT);
pinMode(obstacle_pin3, INPUT);
pinMode(obstacle_pin4, INPUT);
pinMode(obstacle_pin1a, INPUT);
pinMode(obstacle_pin2a, INPUT);
pinMode(obstacle_pin3a, INPUT);
pinMode(obstacle_pin4a, INPUT);
}
void loop(){
isobstacle1 = digitalRead(obstacle_pin1);
isobstacle2 = digitalRead(obstacle_pin2);
isobstacle3 = digitalRead(obstacle_pin3);
isobstacle4 = digitalRead(obstacle_pin4);
//ONLY ROUTE 1 HAVE VEHICLES
if(isobstacle1==LOW && isobstacle2==HIGH && isobstacle3==HIGH && isobstacle4==HIGH)
{
digitalWrite(g1, HIGH);//1 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
}
//ONLY ROUTE 2 HAVE VEHICLES
if(isobstacle1==HIGH && isobstacle2==LOW && isobstacle3==HIGH && isobstacle4==HIGH)
{
digitalWrite(g1, LOW);//2 GREEN
digitalWrite(g2, HIGH);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
}
//ONLY ROUTE 3 HAVE VEHICLES
if(isobstacle1==HIGH && isobstacle2==HIGH && isobstacle3==LOW && isobstacle4==HIGH)
{
digitalWrite(g1, LOW);//3 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, HIGH);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, LOW);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
}
//ONLY ROUTE 4 HAVE VEHICLES
if(isobstacle1==HIGH && isobstacle2==HIGH && isobstacle3==HIGH && isobstacle4==LOW)
{
digitalWrite(g1, LOW);//4 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, HIGH);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, LOW);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
}
//ONLY ROUTE 1 AND 3 HAVE VEHICLES
if(isobstacle1==LOW && isobstacle2==HIGH && isobstacle3==LOW && isobstacle4==HIGH)
{
digitalWrite(g1, HIGH);//1 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//1 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r3, LOW);
digitalWrite(r4, HIGH);
digitalWrite(y1, HIGH);
digitalWrite(y2, LOW);
digitalWrite(y3, HIGH);
digitalWrite(y4, LOW);
delay(2000);
digitalWrite(g1, LOW);//3 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, HIGH);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, LOW);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//3 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r3, LOW);
digitalWrite(r4, HIGH);
digitalWrite(y1, HIGH);
digitalWrite(y2, LOW);
digitalWrite(y3, HIGH);
digitalWrite(y4, LOW);
delay(2000);
}
//ONLY ROUTE 2 AND 4 HAVE VEHICLES
if(isobstacle1==HIGH && isobstacle2==LOW && isobstacle3==HIGH && isobstacle4==LOW)
{
digitalWrite(g1, LOW);//2 GREEN
digitalWrite(g2, HIGH);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//2 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(r3, HIGH);
digitalWrite(r4, LOW);
digitalWrite(y1, LOW);
digitalWrite(y2, HIGH);
digitalWrite(y3, LOW);
digitalWrite(y4, HIGH);
delay(2000);
digitalWrite(g1, LOW);//4 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, HIGH);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, LOW);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//4 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(r3, HIGH);
digitalWrite(r4, LOW);
digitalWrite(y1, LOW);
digitalWrite(y2, HIGH);
digitalWrite(y3, LOW);
digitalWrite(y4, HIGH);
delay(2000);
}
//ONLY ROUTE 1 AND 2 HAVE VEHICLES
if(isobstacle1==LOW && isobstacle2==LOW && isobstacle3==HIGH && isobstacle4==HIGH)
{
digitalWrite(g1, HIGH);//1 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//1 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, LOW);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(2000);
digitalWrite(g1, LOW);//2 GREEN
digitalWrite(g2, HIGH);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//2 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, LOW);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(2000);
}
//ONLY ROUTE 2 AND 3 HAVE VEHICLES
if(isobstacle1==HIGH && isobstacle2==LOW && isobstacle3==LOW && isobstacle4==HIGH)
{
digitalWrite(g1, LOW);//2 GREEN
digitalWrite(g2, HIGH);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//2 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(r3, LOW);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, LOW);
delay(2000);
digitalWrite(g1, LOW);//3 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, HIGH);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, LOW);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//3 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(r3, LOW);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, LOW);
delay(2000);
}
//ONLY ROUTE 3 AND 4 HAVE VEHICLES
if(isobstacle1==HIGH && isobstacle2==HIGH && isobstacle3==LOW && isobstacle4==LOW)
{
digitalWrite(g1, LOW);//3 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, HIGH);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, LOW);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//3 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, LOW);
digitalWrite(r4, LOW);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
delay(2000);
digitalWrite(g1, LOW);//4 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, HIGH);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, LOW);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//4 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, LOW);
digitalWrite(r4, LOW);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
delay(2000);
}
//ONLY ROUTE 4 AND 1 HAVE VEHICLES
if(isobstacle1==LOW && isobstacle2==HIGH && isobstacle3==HIGH && isobstacle4==LOW)
{
digitalWrite(g1, LOW);//4 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, HIGH);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, LOW);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//4 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, LOW);
digitalWrite(y1, HIGH);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, HIGH);
delay(2000);
digitalWrite(g1, HIGH);//1 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//1 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, LOW);
digitalWrite(y1, HIGH);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, HIGH);
delay(2000);
}
//ONLY ROUTE 1, 2 AND 3 HAVE VEHICLES
if(isobstacle1==LOW && isobstacle2==LOW && isobstacle3==LOW && isobstacle4==HIGH)
{
digitalWrite(g1, HIGH);//1 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//1 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, LOW);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(2000);
digitalWrite(g1, LOW);//2 GREEN
digitalWrite(g2, HIGH);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//2 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(r3, LOW);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, LOW);
delay(2000);
digitalWrite(g1, LOW);//3 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, HIGH);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, LOW);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//3 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r3, LOW);
digitalWrite(r4, HIGH);
digitalWrite(y1, HIGH);
digitalWrite(y2, LOW);
digitalWrite(y3, HIGH);
digitalWrite(y4, LOW);
delay(2000);
}
//ONLY ROUTE 2, 3 AND 4 HAVE VEHICLES
if(isobstacle1==HIGH && isobstacle2==LOW && isobstacle3==LOW && isobstacle4==LOW)
{
digitalWrite(g1, LOW);//2 GREEN
digitalWrite(g2, HIGH);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//2 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(r3, LOW);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, LOW);
delay(2000);
digitalWrite(g1, LOW);//3 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, HIGH);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, LOW);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//3 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, LOW);
digitalWrite(r4, LOW);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
delay(2000);
digitalWrite(g1, LOW);//4 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, HIGH);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, LOW);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//4 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(r3, HIGH);
digitalWrite(r4, LOW);
digitalWrite(y1, LOW);
digitalWrite(y2, HIGH);
digitalWrite(y3, LOW);
digitalWrite(y4, HIGH);
delay(2000);
}
//ONLY ROUTE 1, 3 AND 4 HAVE VEHICLE
if(isobstacle1==LOW && isobstacle2==HIGH && isobstacle3==LOW && isobstacle4==LOW)
{
digitalWrite(g1, HIGH);//1 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//1 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r3, LOW);
digitalWrite(r4, HIGH);
digitalWrite(y1, HIGH);
digitalWrite(y2, LOW);
digitalWrite(y3, HIGH);
digitalWrite(y4, LOW);
delay(2000);
digitalWrite(g1, LOW);//3 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, HIGH);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, LOW);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//3 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, LOW);
digitalWrite(r4, LOW);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
delay(2000);
digitalWrite(g1, LOW);//4 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, HIGH);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, LOW);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//4 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, LOW);
digitalWrite(y1, HIGH);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, HIGH);
delay(2000);
}
//ONLY ROUTE 1, 2 AND 4 HAVE VEHICLES
if(isobstacle1==LOW && isobstacle2==LOW && isobstacle3==HIGH && isobstacle4==LOW)
{
digitalWrite(g1, HIGH);//1 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//1 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, LOW);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(2000);
digitalWrite(g1, LOW);//2 GREEN
digitalWrite(g2, HIGH);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//2 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(r3, HIGH);
digitalWrite(r4, LOW);
digitalWrite(y1, LOW);
digitalWrite(y2, HIGH);
digitalWrite(y3, LOW);
digitalWrite(y4, HIGH);
delay(2000);
digitalWrite(g1, LOW);//4 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, HIGH);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, LOW);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//4 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, LOW);
digitalWrite(y1, HIGH);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, HIGH);
delay(2000);
}
//ALL ROUTES HAVE VEHICLE
if(isobstacle1==LOW && isobstacle2==LOW && isobstacle3==LOW && isobstacle4==LOW)
{
digitalWrite(g1, HIGH);//1 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//1 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, LOW);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(2000);
digitalWrite(g1, LOW);//2 GREEN
digitalWrite(g2, HIGH);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(r3, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//2 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, LOW);
digitalWrite(r3, LOW);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y4, LOW);
delay(2000);
digitalWrite(g1, LOW);//3 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, HIGH);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, LOW);
digitalWrite(r4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//3 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, LOW);
digitalWrite(r4, LOW);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, HIGH);
digitalWrite(y4, HIGH);
delay(2000);
digitalWrite(g1, LOW);//4 GREEN
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, HIGH);
digitalWrite(r1, HIGH);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, LOW);
digitalWrite(y1, LOW);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, LOW);
delay(4000);
digitalWrite(g1, LOW);//4 YELLOW
digitalWrite(g2, LOW);
digitalWrite(g3, LOW);
digitalWrite(g4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(r4, LOW);
digitalWrite(y1, HIGH);
digitalWrite(y2, LOW);
digitalWrite(y3, LOW);
digitalWrite(y4, HIGH);
delay(2000);
}
}