-
Notifications
You must be signed in to change notification settings - Fork 0
/
line_tracking.ino
110 lines (90 loc) · 1.87 KB
/
line_tracking.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
105
106
107
108
109
110
int PinMa=4;
int PWMa=5;
int PinMb=7;
int PWMb=6;
const int ldr1 = A0;
const int ldr2 = A1;
const int ldr3 = A2;
const int ldr4 = A3;
const int ldr5 = A4;
int DS_1=0;
int DS_2=0;
int DS_3=0;
int DS_4=0;
int DS_5=0;
void move (int x, int y){
digitalWrite (PinMa,HIGH);
analogWrite(PWMa,y);
digitalWrite (PinMb,HIGH);
analogWrite(PWMb,x);
}
void setup() {
// put your setup code here, to run once:
Serial.begin(57600);
pinMode(PinMa, OUTPUT);
pinMode(PWMa, OUTPUT);
pinMode(PinMb, OUTPUT);
pinMode(PWMb, OUTPUT);
pinMode(ldr1, INPUT);
pinMode(ldr2, INPUT);
pinMode(ldr3, INPUT);
pinMode(ldr4, INPUT);
pinMode(ldr5, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
DS_1 = digitalRead(ldr1);
DS_2 = digitalRead(ldr2);
DS_3 = digitalRead(ldr3);
DS_4 = digitalRead(ldr4);
DS_5 = digitalRead(ldr5);
if (DS_1 == 0 &&DS_2 == 1 && DS_3 == 1 && DS_4 == 1 && DS_5 == 0||DS_1 == 0 &&DS_2 == 0 && DS_3 == 1 && DS_4 == 0 && DS_5 == 0){
move(120,120);
}
else if (DS_2 == 0 && DS_3 == 0 && DS_4 == 0 && DS_1 == 0 && DS_5 == 0) { // semicircule
while(DS_3==0){
move(80,80);
DS_3 = digitalRead(ldr3);
}
}
else if (DS_2 == 1 && DS_3 == 1 && DS_4 == 1 && DS_1 == 1 && DS_5 == 1) { // semicircule
while(DS_1==1 && DS_5==1){
move(80,80);
DS_1 = digitalRead(ldr1);
DS_5 = digitalRead(ldr5);
}
if (DS_1==0 &&DS_5==1){
move(100,50);
}
else if (DS_1==1 &&DS_5==0){
move(50,100);
}
else {
move(120,120);
}
}
else if (DS_2 == 1 && DS_3 == 1 && DS_4 == 0){
move(115,120);
}
else if (DS_2 == 0 && DS_3 == 1 && DS_4 == 1){
move (120,115);
}
else if (DS_2 == 0 && DS_3 == 0 && DS_4 == 1) { // elf 4mal
while(DS_3==0){
move(100,15);
DS_3 = digitalRead(ldr3);
if(DS_4==0){
break;
}
}
}
else if (DS_2 == 1 && DS_3 == 0 && DS_4 == 0) { // elf emen
while(DS_3==0){
move(15,100);
DS_3 = digitalRead(ldr3);
if(DS_2==0){
break;
}
}
}
}