-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhigh_tech_road.ino
More file actions
104 lines (96 loc) · 2.34 KB
/
high_tech_road.ino
File metadata and controls
104 lines (96 loc) · 2.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <Servo.h>
Servo myservo1;
Servo myservo2;
int led1 = 8;
int led2 = 9;
int led3 = 10;
int led4 = 11;
int led5 = 12; //for street light led1 to led5
int green = 7;
int yellow = 6;
int red = 5; // for traffc light
int a,b,c,d,e;
int pos1 = 0;
int pos2 = 0;
void setup()
{
myservo1.attach(4); // servo at 4
myservo2.attach(3); // servo at 3
myservo1.write(0);
myservo2.write(45);
pinMode(A0,INPUT);
pinMode(A1,INPUT);
pinMode(A2,INPUT);
pinMode(A3,INPUT);
pinMode(A4,INPUT); //for IR sensors A0 to A4
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
pinMode(green,OUTPUT);
pinMode(yellow,OUTPUT);
pinMode(red,OUTPUT);
Serial.begin(9600);
Serial.println("welcome to high tech road");
}
void loop()
{
digitalWrite(green,HIGH); Serial.println("green led is on");
delay(5000); // 5 seconds green signal
digitalWrite(green,LOW); Serial.println("green led is off");
digitalWrite(yellow,HIGH);Serial.println("yellow led is on");
delay(2000);
Serial.println("wait for a while");
for (pos1 = 0; pos1 <= 60; pos1 += 1){
myservo1.write(pos1);
myservo2.write(0);
}
delay(4000); // 4 seconds yellow signal
digitalWrite(yellow,LOW); Serial.println("yellow led is off");
digitalWrite(red,HIGH); Serial.println("red led is on");
delay(1500); // 15 seconds red signal
digitalWrite(red,LOW); Serial.println("red led is off");
delay(1000);
for (pos1 = -60; pos1 <=0 ; pos1 -= 1)
{
myservo1.write(pos1);
myservo2.write(60);
digitalWrite(green,HIGH);
// Serial.println("ready to go");
}
a=digitalRead(A0);
b=digitalRead(A1);
c=digitalRead(A2);
d=digitalRead(A3);
e=digitalRead(A4);
if(a==HIGH)
{
digitalWrite(led1,HIGH);
}
else if(b==HIGH)
{
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
}
else if(c==HIGH)
{
digitalWrite(led3,HIGH);
}
else if(d==HIGH)
{
digitalWrite(led4,HIGH);
}
else if(e==HIGH)
{
digitalWrite(led5,HIGH);
}
else
{
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
}
}