-
Notifications
You must be signed in to change notification settings - Fork 2
/
Parking_sensor.ino
104 lines (87 loc) · 2.26 KB
/
Parking_sensor.ino
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
#define ledGreen1 4
#define ledGreen2 5
#define trigPin 7
#define echoPin 6
#define ledYellow1 13
#define ledYellow2 12
#define ledRed1 11
#define ledRed2 10
#define ledWhite1 9
#define ledWhite2 8
#define buzzer 3
int sound = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(ledWhite1, OUTPUT);
pinMode(ledWhite2, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledGreen1, OUTPUT);
pinMode(ledGreen2, OUTPUT);
pinMode(ledYellow1, OUTPUT);
pinMode(ledYellow2, OUTPUT);
pinMode(ledRed1, OUTPUT);
pinMode(ledRed2, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
long timeTaken, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
timeTaken = pulseIn(echoPin, HIGH);//determine distance of wave
distance = (timeTaken/2)/29.1;//using timeTaken calc distance of object
/*determine corressponding leds to light up with respect to the distance
of object*/
if(distance<81){
digitalWrite(ledGreen1, HIGH); sound = 600;
}else{
digitalWrite(ledGreen1, LOW);
}
if(distance<71){
digitalWrite(ledGreen2, HIGH); sound = 800;
}else{
digitalWrite(ledGreen2, LOW);
}
if(distance<61){
digitalWrite(ledYellow1, HIGH); sound = 1000;
}else{
digitalWrite(ledYellow1, LOW);
}
if(distance<51){
digitalWrite(ledYellow2, HIGH); sound = 1200;
}else{
digitalWrite(ledYellow2, LOW);
}
if(distance<41){
digitalWrite(ledRed1, HIGH); sound = 1400;
}else{
digitalWrite(ledRed1, LOW);
}
if(distance<31){
digitalWrite(ledRed2, HIGH); sound = 1600;
}else{
digitalWrite(ledRed2, LOW);
}
if(distance<21){
digitalWrite(ledWhite1, HIGH); sound = 1800;
}else{
digitalWrite(ledWhite1, LOW);
}
if(distance<11){
digitalWrite(ledWhite2, HIGH); sound = 2000;
}else{
digitalWrite(ledWhite2, LOW);
}
/*buzzer tone*/
if(distance>80||distance<=0){
noTone(buzzer);
}else{
tone(buzzer, sound);
}
delay(500);
}