-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMain.nxc
80 lines (77 loc) · 1.71 KB
/
Main.nxc
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
#define farbe 25
task main ()
{
//B - linker Motor; C - rechter Motor
SetSensorLight(IN_1); //%depricated%
SetSensorLight(IN_2);
SetSensorLight(IN_3);
//Von 1 - 3: links, Mitte, rechts
SetSensorLowspeed(IN_4); //4-5 zm - stop
int pass = 1;
int id = 0;
while (0 == 0)
{
if(id == 0)
{
OnRevReg(OUT_BC, 60, OUT_REGMODE_SYNC);
}
else
{
RotateMotorEx(OUT_BC, 100, -1180, 100, true, true);
id =0;
}
if(Sensor(IN_1) < farbe & Sensor(IN_2) < farbe & Sensor(IN_3) > farbe)
{
until (Sensor(IN_1) > farbe & Sensor(IN_2) < farbe)
{
OnFwd(OUT_C, 45);
}
}
else if(Sensor(IN_3) < farbe & Sensor(IN_2) < farbe & Sensor(IN_1) > farbe)
{
until (Sensor(IN_3) > farbe & Sensor(IN_2) < farbe & Sensor(IN_1) > farbe)
{
OnFwd(OUT_B, 45);
}
}
else if(Sensor(IN_1) < farbe & Sensor(IN_2) > farbe & Sensor(IN_3) > farbe)
{
until (Sensor(IN_1) > farbe & Sensor(IN_2) < farbe)
{
OnFwd(OUT_C, 45);
}
}
else if(Sensor(IN_3) < farbe & Sensor(IN_2) > farbe & Sensor(IN_1) > farbe)
{
until (Sensor(IN_3) > farbe & Sensor(IN_2) < farbe)
{
OnFwd(OUT_B, 45);
}
}
else if(Sensor(IN_3) < farbe & Sensor(IN_2) < farbe & Sensor(IN_1) < farbe)
{
OnRevReg(OUT_BC, 50, OUT_REGMODE_SYNC);
}
else
{
OnRevReg(OUT_BC, 60, OUT_REGMODE_SYNC);
}
if(SensorUS(IN_4) == 4)
{
Off(OUT_BC);
if(pass == 1)
{
RotateMotor(OUT_A, 100, -120);
}
else
{
RotateMotor(OUT_A, 100, 120);
}
Wait(2000);
id = 1;
OnFwdReg(OUT_BC, 60, OUT_REGMODE_SYNC);
pass = 2;
Wait(3000);
}
}
}