Density Based Traffic System with emergency override Project Code1. #include <LiquidCrystal.h>
LiquidCrystal lcd(45,44,49, 48, 47,46);
//pedestrianledpins
const intled1=23;
const intled2=25;
const intled3=27;
const intled4=29;
//pedestrianledbuttons
const intbutton_lane1=22;
const intbutton_lane2=24;
const intbutton_lane3=26;
const intbutton_lane4=28;
intstate1;
intstate2;
intstate3;
intstate4;
//ledpinsforlane 1
const intred1=2;
2. const intyellow1=3;
const intgreen1=4;
//ledpinsforlane 2
const intred2=5;
const intyellow2=6;
const intgreen2=7;
//ledpinsforlane 3
const intred3=8;
const intyellow3=9;
const intgreen3=10;
//ledpinsforlane 4
const intred4= 11;
const intyellow4=12;
const intgreen4=13;
//irsensorspinforlane 1
intir_lane1_a=30 ;
intir_lane1_b=31 ;
//irsensorspinforlane 2
3. intir_lane2_a=32 ;
intir_lane2_b=33 ;
//irsensorspinforlane 3
intir_lane3_a=40;
intir_lane3_b=41;
//irsensorspinforlane 4
intir_lane4_a=42;
intir_lane4_b=43;
intreadsen1a;
intreadsen1b;
intreadsen2a;
intreadsen2b;
intreadsen3a;
intreadsen3b;
intreadsen4a;
intreadsen4b;
intlane;
voidsetup()
{
4. lcd.begin(16,2);
//LED pinsetupfor lane 1
pinMode(red1,OUTPUT);
pinMode(yellow1,OUTPUT);
pinMode(green1,OUTPUT);
//LED pinsetupforlane 2
pinMode(red2,OUTPUT);
pinMode(yellow2,OUTPUT);
pinMode(green2,OUTPUT);
//LED pinsetupforlane 3
pinMode(red3,OUTPUT);
pinMode(yellow3,OUTPUT);
pinMode(green3,OUTPUT);
//LED pinsetupforlane 4
pinMode(red4,OUTPUT);
pinMode(yellow4,OUTPUT);
pinMode(green4,OUTPUT);
//IR pinsetupforlane 1
pinMode(ir_lane1_a,INPUT);
5. pinMode(ir_lane1_b,INPUT);
//IRpinsetupfor lane 1
pinMode(ir_lane2_a,INPUT);
pinMode(ir_lane2_b,INPUT);
//IRpinsetupfor lane 1
pinMode(ir_lane3_a,INPUT);
pinMode(ir_lane3_b,INPUT);
//IRpinsetupfor lane 1
pinMode(ir_lane4_a,INPUT);
pinMode(ir_lane4_b,INPUT);
// pedestrianpinsetupforlane1
pinMode(button_lane1,INPUT);
pinMode(led1,OUTPUT);
// pedestrianpinsetupforlane2
pinMode(button_lane2,INPUT);
pinMode(led2,OUTPUT);
// pedestrianpinsetupforlane3
7. //1
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(red1,LOW);
digitalWrite(yellow1,LOW);
digitalWrite(green1,HIGH);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
digitalWrite(red3,HIGH);
digitalWrite(yellow3,LOW);
digitalWrite(green3,LOW);
digitalWrite(red4,HIGH);
digitalWrite(yellow4,LOW);
digitalWrite(green4,LOW);
delay(5000);
if(Serial.available()>0)
{
emergency();
}
8. overide();
pedes1();
pedes2();
pedes3();
pedes4();
//2
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(red1,LOW);
digitalWrite(yellow1,HIGH);
digitalWrite(green1,LOW);
digitalWrite(red2,LOW);
digitalWrite(yellow2,HIGH);
digitalWrite(green2,LOW);
digitalWrite(red3,HIGH);
digitalWrite(yellow3,LOW);
digitalWrite(green3,LOW);
digitalWrite(red4,HIGH);
digitalWrite(yellow4,LOW);
digitalWrite(green4,LOW);
9. delay(3000);
if(Serial.available()>0)
{
emergency();
}
overide();
pedes1();
pedes2();
pedes3();
pedes4();
//3
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(red1,HIGH);
digitalWrite(yellow1,LOW);
digitalWrite(green1,LOW);
digitalWrite(red2,LOW);
digitalWrite(yellow2,LOW);
digitalWrite(green2,HIGH);
10. digitalWrite(red3,HIGH);
digitalWrite(yellow3,LOW);
digitalWrite(green3,LOW);
digitalWrite(red4,HIGH);
digitalWrite(yellow4,LOW);
digitalWrite(green4,LOW);
delay(5000);
if(Serial.available()>0)
{
emergency();
}
overide();
pedes1();
pedes2();
pedes3();
pedes4();
//4
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
11. digitalWrite(red1,HIGH);
digitalWrite(yellow1,LOW);
digitalWrite(green1,LOW);
digitalWrite(red2,LOW);
digitalWrite(yellow2,HIGH);
digitalWrite(green2,LOW);
digitalWrite(red3,LOW);
digitalWrite(yellow3,HIGH);
digitalWrite(green3,LOW);
digitalWrite(red4,HIGH);
digitalWrite(yellow4,LOW);
digitalWrite(green4,LOW);
delay(3000);
if(Serial.available()>0)
{
emergency();
}
overide();
pedes1();
pedes2();
pedes3();
pedes4();
12. //5
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(red1,HIGH);
digitalWrite(yellow1,LOW);
digitalWrite(green1,LOW);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
digitalWrite(red3,LOW);
digitalWrite(yellow3,LOW);
digitalWrite(green3,HIGH);
digitalWrite(red4,HIGH);
digitalWrite(yellow4,LOW);
digitalWrite(green4,LOW);
delay(5000);
if(Serial.available()>0)
{
emergency();
}
overide();
13. pedes1();
pedes2();
pedes3();
pedes4();
//6
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(red1,HIGH);
digitalWrite(yellow1,LOW);
digitalWrite(green1,LOW);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
digitalWrite(red3,LOW);
digitalWrite(yellow3,HIGH);
digitalWrite(green3,LOW);
digitalWrite(red4,LOW);
digitalWrite(yellow4,HIGH);
digitalWrite(green4,LOW);
delay(3000);
if(Serial.available()>0)
14. {
emergency();
}
overide();
pedes1();
pedes2();
pedes3();
pedes4();
//7
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(red1,HIGH);
digitalWrite(yellow1,LOW);
digitalWrite(green1,LOW);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
digitalWrite(red3,HIGH);
digitalWrite(yellow3,LOW);
digitalWrite(green3,LOW);
15. digitalWrite(red4,LOW);
digitalWrite(yellow4,LOW);
digitalWrite(green4,HIGH);
delay(5000);
if(Serial.available()>0)
{
emergency();
}
overide();
pedes1();
pedes2();
pedes3();
pedes4();
//8
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(red1,LOW);
digitalWrite(yellow1,HIGH);
digitalWrite(green1,LOW);
17. voidemergency()
{
lane=Serial.read();
if(lane=='1')
{
lcd.begin(16,2);
lcd.print("emergencyinL1");
digitalWrite(red1,LOW);
digitalWrite(yellow1,HIGH);
digitalWrite(green1,LOW);
digitalWrite(red2,LOW);
digitalWrite(yellow2,HIGH);
digitalWrite(green2,LOW);
digitalWrite(red3,LOW);
digitalWrite(yellow3,HIGH);
digitalWrite(green3,LOW);
digitalWrite(red4,LOW);
digitalWrite(yellow4,HIGH);
digitalWrite(green4,LOW);
delay(2000);
digitalWrite(red1,LOW);
18. digitalWrite(yellow1,LOW);
digitalWrite(green1,HIGH);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
digitalWrite(red3,HIGH);
digitalWrite(yellow3,LOW);
digitalWrite(green3,LOW);
digitalWrite(red4,HIGH);
digitalWrite(yellow4,LOW);
digitalWrite(green4,LOW);
delay(12000);
lcd.clear();
digitalWrite(red1,LOW);
digitalWrite(yellow1,HIGH);
digitalWrite(green1,LOW);
digitalWrite(red2,LOW);
digitalWrite(yellow2,HIGH);
digitalWrite(green2,LOW);
digitalWrite(red3,LOW);
digitalWrite(yellow3,HIGH);
digitalWrite(green3,LOW);
digitalWrite(red4,LOW);
digitalWrite(yellow4,HIGH);
digitalWrite(green4,LOW);
19. delay(2000);
}
if(lane=='2')
{
lcd.begin(16,2);
lcd.print("emergencyinL2");
digitalWrite(red1,LOW);
digitalWrite(yellow1,HIGH);
digitalWrite(green1,LOW);
digitalWrite(red2,LOW);
digitalWrite(yellow2,HIGH);
digitalWrite(green2,LOW);
digitalWrite(red3,LOW);
digitalWrite(yellow3,HIGH);
digitalWrite(green3,LOW);
digitalWrite(red4,LOW);
digitalWrite(yellow4,HIGH);
digitalWrite(green4,LOW);
delay(2000);
digitalWrite(red1,HIGH);
digitalWrite(yellow1,LOW);
20. digitalWrite(green1,LOW);
digitalWrite(red2,LOW);
digitalWrite(yellow2,LOW);
digitalWrite(green2,HIGH);
digitalWrite(red3,HIGH);
digitalWrite(yellow3,LOW);
digitalWrite(green3,LOW);
digitalWrite(red4,HIGH);
digitalWrite(yellow4,LOW);
digitalWrite(green4,LOW);
delay(12000);
lcd.clear();
digitalWrite(red1,LOW);
digitalWrite(yellow1,HIGH);
digitalWrite(green1,LOW);
digitalWrite(red2,LOW);
digitalWrite(yellow2,HIGH);
digitalWrite(green2,LOW);
digitalWrite(red3,LOW);
digitalWrite(yellow3,HIGH);
digitalWrite(green3,LOW);
digitalWrite(red4,LOW);
digitalWrite(yellow4,HIGH);
digitalWrite(green4,LOW);
delay(2000);
21. }
if(lane=='3')
{
lcd.begin(16,2);
lcd.print("emergencyinL3");
digitalWrite(red1,LOW);
digitalWrite(yellow1,HIGH);
digitalWrite(green1,LOW);
digitalWrite(red2,LOW);
digitalWrite(yellow2,HIGH);
digitalWrite(green2,LOW);
digitalWrite(red3,LOW);
digitalWrite(yellow3,HIGH);
digitalWrite(green3,LOW);
digitalWrite(red4,LOW);
digitalWrite(yellow4,HIGH);
digitalWrite(green4,LOW);
delay(2000);
digitalWrite(red1,HIGH);
digitalWrite(yellow1,LOW);
digitalWrite(green1,LOW);
digitalWrite(red2,HIGH);
22. digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
digitalWrite(red3,LOW);
digitalWrite(yellow3,LOW);
digitalWrite(green3,HIGH);
digitalWrite(red4,HIGH);
digitalWrite(yellow4,LOW);
digitalWrite(green4,LOW);
delay(12000);
lcd.clear();
digitalWrite(red1,LOW);
digitalWrite(yellow1,HIGH);
digitalWrite(green1,LOW);
digitalWrite(red2,LOW);
digitalWrite(yellow2,HIGH);
digitalWrite(green2,LOW);
digitalWrite(red3,LOW);
digitalWrite(yellow3,HIGH);
digitalWrite(green3,LOW);
digitalWrite(red4,LOW);
digitalWrite(yellow4,HIGH);
digitalWrite(green4,LOW);
delay(2000);
}
23. if(lane=='4')
{
lcd.begin(16,2);
lcd.print("emergencyinL4");
digitalWrite(red1,LOW);
digitalWrite(yellow1,HIGH);
digitalWrite(green1,LOW);
digitalWrite(red2,LOW);
digitalWrite(yellow2,HIGH);
digitalWrite(green2,LOW);
digitalWrite(red3,LOW);
digitalWrite(yellow3,HIGH);
digitalWrite(green3,LOW);
digitalWrite(red4,LOW);
digitalWrite(yellow4,HIGH);
digitalWrite(green4,LOW);
delay(2000);
digitalWrite(red1,HIGH);
digitalWrite(yellow1,LOW);
digitalWrite(green1,LOW);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
24. digitalWrite(green2,LOW);
digitalWrite(red3,HIGH);
digitalWrite(yellow3,LOW);
digitalWrite(green3,LOW);
digitalWrite(red4,LOW);
digitalWrite(yellow4,LOW);
digitalWrite(green4,HIGH);
delay(12000);
lcd.clear();
digitalWrite(red1,LOW);
digitalWrite(yellow1,HIGH);
digitalWrite(green1,LOW);
digitalWrite(red2,LOW);
digitalWrite(yellow2,HIGH);
digitalWrite(green2,LOW);
digitalWrite(red3,LOW);
digitalWrite(yellow3,HIGH);
digitalWrite(green3,LOW);
digitalWrite(red4,LOW);
digitalWrite(yellow4,HIGH);
digitalWrite(green4,LOW);
delay(2000);
}
25. if(lane=='0')
{
lcd.print("lane 1");
digitalWrite(red1,LOW);
digitalWrite(yellow1,LOW);
digitalWrite(green1,LOW);
digitalWrite(red2,LOW);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
digitalWrite(red3,LOW);
digitalWrite(yellow3,LOW);
digitalWrite(green3,LOW);
digitalWrite(red4,LOW);
digitalWrite(yellow4,LOW);
digitalWrite(green4,LOW);
}
}
voidoveride()
{
readsen1a=digitalRead(ir_lane1_a);
readsen1b=digitalRead(ir_lane1_b);
26. readsen2a=digitalRead(ir_lane2_a);
readsen2b=digitalRead(ir_lane2_b);
readsen3a=digitalRead(ir_lane3_a);
readsen3b=digitalRead(ir_lane3_b);
readsen4a=digitalRead(ir_lane4_a);
readsen4b=digitalRead(ir_lane4_b);
if(readsen1a==HIGH|| readsen1b==HIGH||readsen2a==HIGH|| readsen2b==HIGH
||readsen3a==HIGH|| readsen3b==HIGH||readsen4a==HIGH|| readsen4b==HIGH)
{
if(readsen1b==HIGH)
{
digitalWrite(red1,LOW);
digitalWrite(yellow1,LOW);
digitalWrite(green1,HIGH);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
digitalWrite(red3,HIGH);
digitalWrite(yellow3,LOW);
digitalWrite(green3,LOW);
digitalWrite(red4,HIGH);
digitalWrite(yellow4,LOW);
digitalWrite(green4,LOW);
delay(10000);
27. if(Serial.available()>0)
{
emergency();
}
}
if(readsen1a==HIGH)
{
digitalWrite(red1,LOW);
digitalWrite(yellow1,LOW);
digitalWrite(green1,HIGH);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
digitalWrite(red3,HIGH);
digitalWrite(yellow3,LOW);
digitalWrite(green3,LOW);
digitalWrite(red4,HIGH);
digitalWrite(yellow4,LOW);
digitalWrite(green4,LOW);
delay(5000);
28. if(Serial.available()>0)
{
emergency();
}
}
if(readsen2b==HIGH)
{
digitalWrite(red1,HIGH);
digitalWrite(yellow1,LOW);
digitalWrite(green1,LOW);
digitalWrite(red2,LOW);
digitalWrite(yellow2,LOW);
digitalWrite(green2,HIGH);
digitalWrite(red3,HIGH);
digitalWrite(yellow3,LOW);
digitalWrite(green3,LOW);
digitalWrite(red4,HIGH);
digitalWrite(yellow4,LOW);
29. digitalWrite(green4,LOW);
delay(10000);
if(Serial.available()>0)
{
emergency();
}
}
if(readsen2a==HIGH)
{
digitalWrite(red1,HIGH);
digitalWrite(yellow1,LOW);
digitalWrite(green1,LOW);
digitalWrite(red2,LOW);
digitalWrite(yellow2,LOW);
digitalWrite(green2,HIGH);
digitalWrite(red3,HIGH);
digitalWrite(yellow3,LOW);
digitalWrite(green3,LOW);
digitalWrite(red4,HIGH);
digitalWrite(yellow4,LOW);
digitalWrite(green4,LOW);
delay(5000);
30. if(Serial.available()>0)
{
emergency();
}
}
if(readsen3b==HIGH)
{
digitalWrite(red1,HIGH);
digitalWrite(yellow1,LOW);
digitalWrite(green1,LOW);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
digitalWrite(red3,LOW);
digitalWrite(yellow3,LOW);
digitalWrite(green3,HIGH);
digitalWrite(red4,HIGH);
digitalWrite(yellow4,LOW);
digitalWrite(green4,LOW);
delay(10000);
if(Serial.available()>0)
31. {
emergency();
}
}
if(readsen3a==HIGH)
{
digitalWrite(red1,HIGH);
digitalWrite(yellow1,LOW);
digitalWrite(green1,LOW);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
digitalWrite(red3,LOW);
digitalWrite(yellow3,LOW);
digitalWrite(green3,HIGH);
digitalWrite(red4,HIGH);
digitalWrite(yellow4,LOW);
digitalWrite(green4,LOW);
delay(5000);
if(Serial.available()>0)
{
32. emergency();
}
}
if(readsen4b==HIGH)
{
digitalWrite(red1,HIGH);
digitalWrite(yellow1,LOW);
digitalWrite(green1,LOW);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
digitalWrite(red3,HIGH);
digitalWrite(yellow3,LOW);
digitalWrite(green3,LOW);
digitalWrite(red4,LOW);
digitalWrite(yellow4,LOW);
digitalWrite(green4,HIGH);
delay(10000);
if(Serial.available()>0)
33. {
emergency();
}
}
if(readsen4b==HIGH)
{
digitalWrite(red1,HIGH);
digitalWrite(yellow1,LOW);
digitalWrite(green1,LOW);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
digitalWrite(red3,HIGH);
digitalWrite(yellow3,LOW);
digitalWrite(green3,LOW);
digitalWrite(red4,LOW);
digitalWrite(yellow4,LOW);
digitalWrite(green4,HIGH);
delay(5000);
35. digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
digitalWrite(red1,HIGH);
digitalWrite(yellow1,LOW);
digitalWrite(green1,LOW);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
digitalWrite(red3,HIGH);
digitalWrite(yellow3,LOW);
digitalWrite(green3,LOW);
digitalWrite(red4,HIGH);
digitalWrite(yellow4,LOW);
digitalWrite(green4,LOW);
delay(5000);
lcd.clear();
}
else
digitalWrite(led1,LOW);
}
voidpedes2()
36. {
state2=digitalRead(button_lane1);
if(state2==1)
{
lcd.begin(16,2);
lcd.print("pedestrianbusy");
lcd.scrollDisplayLeft();
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
digitalWrite(red1,HIGH);
digitalWrite(yellow1,LOW);
digitalWrite(green1,LOW);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
digitalWrite(red3,HIGH);
digitalWrite(yellow3,LOW);
digitalWrite(green3,LOW);
digitalWrite(red4,HIGH);
digitalWrite(yellow4,LOW);
digitalWrite(green4,LOW);
delay(5000);
37. lcd.clear();
}
else
digitalWrite(led2,LOW);
}
voidpedes3()
{
state3=digitalRead(button_lane3);
if(state3==1)
{
lcd.begin(16,2);
lcd.print("pedestrianbusy");
lcd.scrollDisplayLeft();
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
digitalWrite(red1,HIGH);
digitalWrite(yellow1,LOW);
digitalWrite(green1,LOW);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
38. digitalWrite(green2,LOW);
digitalWrite(red3,HIGH);
digitalWrite(yellow3,LOW);
digitalWrite(green3,LOW);
digitalWrite(red4,HIGH);
digitalWrite(yellow4,LOW);
digitalWrite(green4,LOW);
delay(5000);
lcd.clear();
}
else
digitalWrite(led3,LOW);
}
voidpedes4()
{
state4=digitalRead(button_lane4);
if(state4==1)
{
lcd.begin(16,2);
lcd.print("pedestrianbusy");
lcd.scrollDisplayLeft();
digitalWrite(led1,HIGH);
39. digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
digitalWrite(red1,HIGH);
digitalWrite(yellow1,LOW);
digitalWrite(green1,LOW);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
digitalWrite(red3,HIGH);
digitalWrite(yellow3,LOW);
digitalWrite(green3,LOW);
digitalWrite(red4,HIGH);
digitalWrite(yellow4,LOW);
digitalWrite(green4,LOW);
delay(5000);
lcd.clear();
}
else
digitalWrite(led4,LOW);
}