Density Arduino Mega Code
Density Arduino Mega Code
#define Y1 12
#define G1 11
#define R2 10
#define Y2 9
#define G2 8
#define R3 7
#define Y3 6
#define G3 5
#define R4 4
#define Y4 3
#define G4 2
void setup()
{
int a;
int b;
int c;
int d;
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(A0,INPUT);
pinMode(A1,INPUT);
pinMode(A2,INPUT);
pinMode(A3,INPUT);
pinMode(A4,INPUT);
pinMode(A5,INPUT);
pinMode(A6,INPUT);
pinMode(A7,INPUT);
pinMode(19,INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(19),ambulance,LOW);
}
void loop()
{
road1();
}
void road1()
{
int IR1=analogRead(A6);
int IR2=analogRead(A7);
if(IR1<=60 && IR2<=60)
{
digitalWrite(G1,HIGH);
digitalWrite(R1,LOW);
digitalWrite(Y1,LOW);
delay(20);
digitalWrite(R2,HIGH);
digitalWrite(Y2,LOW);
digitalWrite(G2,LOW);
delay(20);
digitalWrite(R3,HIGH);
digitalWrite(Y3,LOW);
digitalWrite(G3,LOW);
delay(20);
digitalWrite(R4,HIGH);
digitalWrite(Y4,LOW);
digitalWrite(G4,LOW);
delay(20);
for (int j = 90; j>=0; j--)// for lopp to pass value from 00-99
{
if(j==10)
{
digitalWrite(Y2,HIGH);
digitalWrite(R2, LOW);
}
digit2 = j / 10;
digit1 = j % 10;
for ( int k = 0; k < 35; k++)// For loop to control the digit control to print
00-99
{
digitalWrite(30, HIGH);
digitalWrite(29, LOW);
dis(digit2);
delay(10);
digitalWrite(29, HIGH);
digitalWrite(30, LOW);
dis(digit1);
delay(15);
}
}
road2();
}
digitalWrite(G1,HIGH);
digitalWrite(R1,LOW);
digitalWrite(Y1,LOW);
delay(20);
digitalWrite(R2,HIGH);
digitalWrite(Y2,LOW);
digitalWrite(G2,LOW);
delay(20);
digitalWrite(R3,HIGH);
digitalWrite(Y3,LOW);
digitalWrite(G3,LOW);
delay(20);
digitalWrite(R4,HIGH);
digitalWrite(Y4,LOW);
digitalWrite(G4,LOW);
delay(20);
for (int j = 60; j>=0; j--)// for lopp to pass value from 00-99
{
if(j==10)
{
digitalWrite(Y2,HIGH);
digitalWrite(R2, LOW);
}
digit2 = j / 10;
digit1 = j % 10;
for ( int k = 0; k < 35; k++)// For loop to control the digit control to
print 00-99
{
digitalWrite(30, HIGH);
digitalWrite(29, LOW);
dis(digit2);
delay(10);
digitalWrite(29, HIGH);
digitalWrite(30, LOW);
dis(digit1);
delay(15);
}
}
road2();
}
digitalWrite(G1,HIGH);
digitalWrite(R1,LOW);
digitalWrite(Y1,LOW);
delay(20);
digitalWrite(R2,HIGH);
digitalWrite(Y2,LOW);
digitalWrite(G2,LOW);
delay(20);
digitalWrite(R3,HIGH);
digitalWrite(Y3,LOW);
digitalWrite(G3,LOW);
delay(20);
digitalWrite(R4,HIGH);
digitalWrite(Y4,LOW);
digitalWrite(G4,LOW);
delay(20);
for (int j = 30; j>=0; j--)// for lopp to pass value from 00-99
{
if(j==10)
{
digitalWrite(Y2,HIGH);
digitalWrite(R2, LOW);
}
digit2 = j / 10;
digit1 = j % 10;
for ( int k = 0; k < 35; k++)// For loop to control the digit control to
print 00-99
{
digitalWrite(30, HIGH);
digitalWrite(29, LOW);
dis(digit2);
delay(10);
digitalWrite(29, HIGH);
digitalWrite(30, LOW);
dis(digit1);
delay(15);
}
}
road2();
}
}
void road2()
{
int IR3=analogRead(A0);
int IR4=analogRead(A1);
int b;
int a=b;
digitalWrite(G1,LOW);
digitalWrite(R1,HIGH);
digitalWrite(Y1,LOW);
delay(20);
digitalWrite(R2,LOW);
digitalWrite(Y2,LOW);
digitalWrite(G2,HIGH);
delay(20);
digitalWrite(R3,HIGH);
digitalWrite(Y3,LOW);
digitalWrite(G3,LOW);
delay(20);
digitalWrite(R4,HIGH);
digitalWrite(Y4,LOW);
digitalWrite(G4,LOW);
delay(20);
for (int j = 90; j>=0; j--)// for lopp to pass value from 00-99
{
if(j==10)
{
digitalWrite(Y3,HIGH);
digitalWrite(R3, LOW);
}
digit2 = j / 10;
digit1 = j % 10;
for ( int k = 0; k < 35; k++)// For loop to control the digit control to
print 00-99
{
digitalWrite(39, HIGH);
digitalWrite(38, LOW);
dis1(digit2);
delay(10);
digitalWrite(38, HIGH);
digitalWrite(39, LOW);
dis1(digit1);
delay(15);
}
}
road3();
}
digitalWrite(G1,LOW);
digitalWrite(R1,HIGH);
digitalWrite(Y1,LOW);
delay(20);
digitalWrite(R2,LOW);
digitalWrite(Y2,LOW);
digitalWrite(G2,HIGH);
delay(20);
digitalWrite(R3,HIGH);
digitalWrite(Y3,LOW);
digitalWrite(G3,LOW);
delay(20);
digitalWrite(R4,HIGH);
digitalWrite(Y4,LOW);
digitalWrite(G4,LOW);
delay(20);
for (int j = 60; j>=0; j--)// for lopp to pass value from 00-99
{
if(j==10)
{
digitalWrite(Y3,HIGH);
digitalWrite(R3, LOW);
}
digit2 = j / 10;
digit1 = j % 10;
for ( int k = 0; k < 35; k++)// For loop to control the digit control to
print 00-99
{
digitalWrite(39, HIGH);
digitalWrite(38, LOW);
dis1(digit2);
delay(10);
digitalWrite(38, HIGH);
digitalWrite(39, LOW);
dis1(digit1);
delay(15);
}
}
road3();
}
digitalWrite(G1,LOW);
digitalWrite(R1,HIGH);
digitalWrite(Y1,LOW);
delay(20);
digitalWrite(R2,LOW);
digitalWrite(Y2,LOW);
digitalWrite(G2,HIGH);
delay(20);
digitalWrite(R3,HIGH);
digitalWrite(Y3,LOW);
digitalWrite(G3,LOW);
delay(20);
digitalWrite(R4,HIGH);
digitalWrite(Y4,LOW);
digitalWrite(G4,LOW);
delay(20);
for (int j = 30; j>=0; j--)// for lopp to pass value from 00-99
{
if(j==10)
{
digitalWrite(Y3,HIGH);
digitalWrite(R3, LOW);
}
digit2 = j / 10;
digit1 = j % 10;
for ( int k = 0; k < 35; k++)// For loop to control the digit control to
print 00-99
{
digitalWrite(39, HIGH);
digitalWrite(38, LOW);
dis1(digit2);
delay(10);
digitalWrite(38, HIGH);
digitalWrite(39, LOW);
dis1(digit1);
delay(15);
}
}
road3();
}
}
void road3()
{
int IR5=analogRead(A2);
int IR6=analogRead(A3);
int c;
int a=c;
if (IR5<=60 && IR6<=60)
{
digitalWrite(G1,LOW);
digitalWrite(R1,HIGH);
digitalWrite(Y1,LOW);
delay(20);
digitalWrite(R2,HIGH);
digitalWrite(Y2,LOW);
digitalWrite(G2,LOW);
delay(20);
digitalWrite(R3,LOW);
digitalWrite(Y3,LOW);
digitalWrite(G3,HIGH);
delay(20);
digitalWrite(R4,HIGH);
digitalWrite(Y4,LOW);
digitalWrite(G4,LOW);
delay(20);
for (int j = 90; j>=0; j--)// for lopp to pass value from 00-99
{
if(j==10)
{
digitalWrite(Y4,HIGH);
digitalWrite(R4, LOW);
}
digit2 = j / 10;
digit1 = j % 10;
for ( int k = 0; k < 35; k++)// For loop to control the digit control to
print 00-99
{
digitalWrite(47, HIGH);
digitalWrite(48, LOW);
dis2(digit2);
delay(10);
digitalWrite(48, HIGH);
digitalWrite(47, LOW);
dis2(digit1);
delay(15);
}
}
road4();
}
digitalWrite(G1,LOW);
digitalWrite(R1,HIGH);
digitalWrite(Y1,LOW);
delay(20);
digitalWrite(R2,HIGH);
digitalWrite(Y2,LOW);
digitalWrite(G2,LOW);
delay(20);
digitalWrite(R3,LOW);
digitalWrite(Y3,LOW);
digitalWrite(G3,HIGH);
delay(20);
digitalWrite(R4,HIGH);
digitalWrite(Y4,LOW);
digitalWrite(G4,LOW);
delay(20);
for (int j = 60; j>=0; j--)// for lopp to pass value from 00-99
{
if(j==10)
{
digitalWrite(Y4,HIGH);
digitalWrite(R4, LOW);
}
digit2 = j / 10;
digit1 = j % 10;
for ( int k = 0; k < 35; k++)// For loop to control the digit control to
print 00-99
{
digitalWrite(47, HIGH);
digitalWrite(48, LOW);
dis2(digit2);
delay(10);
digitalWrite(48, HIGH);
digitalWrite(47, LOW);
dis2(digit1);
delay(15);
}
}
road4();
}
digitalWrite(G1,LOW);
digitalWrite(R1,HIGH);
digitalWrite(Y1,LOW);
delay(20);
digitalWrite(R2,HIGH);
digitalWrite(Y2,LOW);
digitalWrite(G2,LOW);
delay(20);
digitalWrite(R3,LOW);
digitalWrite(Y3,LOW);
digitalWrite(G3,HIGH);
delay(20);
digitalWrite(R4,HIGH);
digitalWrite(Y4,LOW);
digitalWrite(G4,LOW);
delay(20);
for (int j = 30; j>=0; j--)// for lopp to pass value from 00-99
{
if(j==10)
{
digitalWrite(Y4,HIGH);
digitalWrite(R4, LOW);
}
digit2 = j / 10;
digit1 = j % 10;
for ( int k = 0; k < 35; k++)// For loop to control the digit control to
print 00-99
{
digitalWrite(47, HIGH);
digitalWrite(48, LOW);
dis2(digit2);
delay(10);
digitalWrite(48, HIGH);
digitalWrite(47, LOW);
dis2(digit1);
delay(15);
}
}
road4();
}
}
void road4() {
int IR7=analogRead(A4);
int IR8=analogRead(A5);
int d;
int a=d;
if(IR7<=60 && IR8<=60)
{
digitalWrite(G1,LOW);
digitalWrite(R1,HIGH);
digitalWrite(Y1,LOW);
delay(20);
digitalWrite(R2,HIGH);
digitalWrite(Y2,LOW);
digitalWrite(G2,LOW);
delay(20);
digitalWrite(R3,HIGH);
digitalWrite(Y3,LOW);
digitalWrite(G3,LOW);
delay(20);
digitalWrite(R4,LOW);
digitalWrite(Y4,LOW);
digitalWrite(G4,HIGH);
delay(20);
for (int j = 90; j>=0; j--)// for lopp to pass value from 00-99
{
if(j==10)
{
digitalWrite(Y1,HIGH);
digitalWrite(R1, LOW);
}
digit2 = j / 10;
digit1 = j % 10;
for ( int k = 0; k < 35; k++)// For loop to control the digit control to
print 00-99
{
digitalWrite(A10, HIGH);
digitalWrite(A11, LOW);
dis3(digit2);
delay(10);
digitalWrite(A11, HIGH);
digitalWrite(A10, LOW);
dis3(digit1);
delay(15);
}
}
road1();
}
digitalWrite(G1,LOW);
digitalWrite(R1,HIGH);
digitalWrite(Y1,LOW);
delay(20);
digitalWrite(R2,HIGH);
digitalWrite(Y2,LOW);
digitalWrite(G2,LOW);
delay(20);
digitalWrite(R3,HIGH);
digitalWrite(Y3,LOW);
digitalWrite(G3,LOW);
delay(20);
digitalWrite(R4,LOW);
digitalWrite(Y4,LOW);
digitalWrite(G4,HIGH);
delay(20);
for (int j = 60; j>=0; j--)// for lopp to pass value from 00-99
{
if(j==10)
{
digitalWrite(Y1,HIGH);
digitalWrite(R1, LOW);
}
digit2 = j / 10;
digit1 = j % 10;
for ( int k = 0; k < 35; k++)// For loop to control the digit control to
print 00-99
{
digitalWrite(A10, HIGH);
digitalWrite(A11, LOW);
dis3(digit2);
delay(10);
digitalWrite(A11, HIGH);
digitalWrite(A10, LOW);
dis3(digit1);
delay(15);
}
}
road1();
}
digitalWrite(G1,LOW);
digitalWrite(R1,HIGH);
digitalWrite(Y1,LOW);
delay(20);
digitalWrite(R2,HIGH);
digitalWrite(Y2,LOW);
digitalWrite(G2,LOW);
delay(20);
digitalWrite(R3,HIGH);
digitalWrite(Y3,LOW);
digitalWrite(G3,LOW);
delay(20);
digitalWrite(R4,LOW);
digitalWrite(Y4,LOW);
digitalWrite(G4,HIGH);
delay(20);
for (int j = 30; j>=0; j--)// for lopp to pass value from 00-99
{
if(j==10)
{
digitalWrite(Y1,HIGH);
digitalWrite(R1, LOW);
}
digit2 = j / 10;
digit1 = j % 10;
for ( int k = 0; k < 35; k++)// For loop to control the digit control to
print 00-99
{
digitalWrite(A10, HIGH);
digitalWrite(A11, LOW);
dis3(digit2);
delay(10);
digitalWrite(A11, HIGH);
digitalWrite(A10, LOW);
dis3(digit1);
delay(15);
}
}
road1();
}
}
void ambulance()
{
run();
void run()
{
int a;
int b;
int c;
int d;
if (a==b)
{
for (int j = 20; j>=0; j--)// for lopp to pass value from 00-99
{
digit2 = j / 10;
digit1 = j % 10;
for ( int k = 0; k < 35; k++)// For loop to control the digit control to
print 00-99
{
digitalWrite(39, HIGH);
digitalWrite(38, LOW);
dis1(digit2);
delay(10);
digitalWrite(38, HIGH);
digitalWrite(39, LOW);
dis1(digit1);
delay(15);
}
}
digitalWrite(R2,HIGH);
digitalWrite(Y2,LOW);
digitalWrite(G2,LOW);
delay(20);
}
else if (a==c)
{
for (int j = 20; j>=0; j--)// for lopp to pass value from 00-99
{
digit2 = j / 10;
digit1 = j % 10;
for ( int k = 0; k < 35; k++)// For loop to control the digit control to
print 00-99
{
digitalWrite(47, HIGH);
digitalWrite(48, LOW);
dis2(digit2);
delay(10);
digitalWrite(48, HIGH);
digitalWrite(47, LOW);
dis2(digit1);
delay(15);
}
}
digitalWrite(R3,HIGH);
digitalWrite(Y3,LOW);
digitalWrite(G3,LOW);
delay(20);
}
else if (a==d)
{
for (int j = 20; j>=0; j--)// for lopp to pass value from 00-99
{
digit2 = j / 10;
digit1 = j % 10;
for ( int k = 0; k < 35; k++)// For loop to control the digit control to
print 00-99
{
digitalWrite(A10, HIGH);
digitalWrite(A11, LOW);
dis3(digit2);
delay(10);
digitalWrite(A11, HIGH);
digitalWrite(A10, LOW);
dis3(digit1);
delay(15);
}
}
digitalWrite(R4,HIGH);
digitalWrite(Y4,LOW);
digitalWrite(G4,LOW);
delay(20);
int s=analogRead(A13);
while(s<=500)
{
digitalWrite(G1,HIGH);
digitalWrite(R1,LOW);
digitalWrite(Y1,LOW);
delay(20);
digitalWrite(R2,HIGH);
digitalWrite(Y2,LOW);
digitalWrite(G2,LOW);
delay(20);
digitalWrite(R3,HIGH);
digitalWrite(Y3,LOW);
digitalWrite(G3,LOW);
delay(20);
digitalWrite(R4,HIGH);
digitalWrite(Y4,LOW);
digitalWrite(G4,LOW);
delay(20);
s=analogRead(A13);
delay(20);
digitalWrite(G1,LOW);
digitalWrite(R1,HIGH);
digitalWrite(Y1,LOW);
delay(20);
digitalWrite(G2,HIGH);
digitalWrite(R2,LOW);
digitalWrite(Y2,LOW);
delay(20);