forked from ProjectgroepA8/BroBot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMotorAansturing.java
86 lines (80 loc) · 2.48 KB
/
MotorAansturing.java
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
package boebot;
import stamp.core.*;
public class MotorAansturing{
private int snelheidL;
private int snelheidR;
private boolean richting;
private PWM motorL, motorR;
public MotorAansturing(){
motorL = new PWM (CPU.pin13, 173, 2304); // motoren op de rem zetten
motorR = new PWM (CPU.pin12, 173, 2304);
}
public void setSnelheidL(int snelheid){
snelheidL = snelheid;
}
public void setSnelheidR(int snelheid){
snelheidR = snelheid;
}
public void setSnelheid(int snelheid){
setSnelheidR(snelheid);
setSnelheidL(snelheid);
}
public void setRichting(boolean r){
richting = r;
}
public void start(){
int maxSnelheid = snelheidL;
System.out.println(maxSnelheid);
for (int i=0; i<=maxSnelheid; i = i + 10) {
setSnelheid(i);
rijden();
CPU.delay (2000);
}
}
public void stop(){
int maxSnelheid = snelheidL;
for (int i=maxSnelheid; i>0; i = i - 10) {
setSnelheid(i);
rijden();
CPU.delay (2000);
}
motorL.update(173, 2304); // motoren op de rem zetten
motorR.update(173, 2304);
}
public void noodStop(){
motorL.update(173, 2304); // motoren op de rem zetten
motorR.update(173, 2304);
}
private void rijden()
{
int motorLWaarde =0;
int motorRWaarde =0;
if(richting){ //vooruit
motorLWaarde = 173-(23*snelheidL/100);
motorRWaarde = 173+(23*snelheidR/100);
}else if(!richting){ //achteruit
motorLWaarde = 173+(23*snelheidL/100);
motorRWaarde = 173-(23*snelheidR/100);
}
motorL.update(motorLWaarde, 2304); //waardes toepassen
motorR.update(motorRWaarde, 2304);
}
public void turn(int graden)
{
int factor = 0;
if(graden > 180 & graden <360){
motorL.update(150, 2304); // Linksom is de kortste route
motorR.update(150, 2304);
graden -= 180;
}else{
motorL.update(196, 2304); // rechtsom is de kortste route
motorR.update(196, 2304);
}
int delay =((37* graden) / 90)*10;
for (int i=0; i<10; i++) { // delay berekenen voor gegeven graades en toepasen
CPU.delay (delay);
}
motorL.update(173, 2304); // motoren afremmen en stil laten staan
motorR.update(173, 2304);
}
}