0% found this document useful (0 votes)
15 views

Density Arduino Mega Code

The document defines pin assignments for controlling 7-segment displays to display countdown timers on four different roads. It initializes the pin modes, defines functions to control each display, and contains the main loop that controls the displays based on input from infrared sensors to determine traffic and change the countdown timers accordingly.
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views

Density Arduino Mega Code

The document defines pin assignments for controlling 7-segment displays to display countdown timers on four different roads. It initializes the pin modes, defines functions to control each display, and contains the main loop that controls the displays based on input from infrared sensors to determine traffic and change the countdown timers accordingly.
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 17

#define R1 13

#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

//Prepare binary array for all 7 segment to turn on 7 segment at position of


a,b,c,d,e,f,g
int digit[10] = {0b0111111, 0b0000110, 0b1011011, 0b1001111, 0b1100110, 0b1101101,
0b1111101, 0b0000111, 0b1111111, 0b1101111};

int digit1, digit2; // initialize individual digit to controll each segment

void dis(int num)


{
for (int i = 22; i < 29; i++)
{
digitalWrite(i, bitRead(digit[num], i - 22));
}
}

void dis2(int num)


{
for (int i = 40; i < 47; i++)
{
digitalWrite(i, bitRead(digit[num], i - 40));
}
}

void dis3(int num)


{
for (int i = 49; i < 54; i++)
{
digitalWrite(i, bitRead(digit[num], i - 49));
}
int i=54;
digitalWrite(A8,bitRead(digit[num],i-49));
i++;
digitalWrite(A9,bitRead(digit[num],i-49));
}

void dis1(int num)


{
for (int i = 31; i < 38; i++)
{
digitalWrite(i, bitRead(digit[num], i - 31));
}
}

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);

for (int i = 22; i < 29; i++)


{
pinMode(i, OUTPUT); // declare 0-9 th pin as output
}
pinMode(29, OUTPUT); //declare 7 seg Digit1 pin as output
pinMode(30, OUTPUT);//declare 7 seg Digit2 pin as output

for (int i = 40; i < 47; i++)


{
pinMode(i, OUTPUT); // declare 0-9 th pin as output
}
pinMode(48, OUTPUT); //declare 7 seg Digit1 pin as output
pinMode(47, OUTPUT);//declare 7 seg Digit2 pin as output

for (int i = 49; i < 54; i++)


{
pinMode(i, OUTPUT); // declare 0-9 th pin as output
}
pinMode(A8, OUTPUT);
pinMode(A9, OUTPUT);
pinMode(A10, OUTPUT);
pinMode(A11, OUTPUT);

for (int i = 31; i < 38; i++)


{
pinMode(i, OUTPUT); // declare 0-9 th pin as output
}
pinMode(39, OUTPUT); //declare 7 seg Digit1 pin as output
pinMode(38, OUTPUT);//declare 7 seg Digit2 pin as output

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();
}

else 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 = 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();
}

else 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 = 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;

if(IR3<=60 && IR4<=60)


{

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();
}

else if(IR3<=60 && IR4>60)


{

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();
}

else if(IR3>60 && IR4>60)


{

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();
}

else 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 = 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();
}

else 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 = 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();
}

else 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 = 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();
}

else 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 = 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);

You might also like