-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmotor.cpp
executable file
·42 lines (38 loc) · 1 KB
/
motor.cpp
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
#include "motor.h"
void setMotorSpeeds(double leftSpeed, double rightSpeed) {
// Constrain speeds to range 0-1023
leftSpeed = constrain(leftSpeed, 0, 1023);
rightSpeed = constrain(rightSpeed, 0, 1023);
// Set left motor speed
if (leftSpeed > 0) {
// Forward
digitalWrite(AIN_1, LOW);
digitalWrite(AIN_2, HIGH);
} else if (leftSpeed < 0) {
// Reverse
digitalWrite(AIN_1, HIGH);
digitalWrite(AIN_2, LOW);
leftSpeed = -leftSpeed;
} else {
// Stop
digitalWrite(AIN_1, LOW);
digitalWrite(AIN_2, LOW);
}
analogWrite(PWM_1, leftSpeed);
// Set right motor speed
if (rightSpeed > 0) {
// Forward
digitalWrite(BIN_1, LOW);
digitalWrite(BIN_2, HIGH);
} else if (rightSpeed < 0) {
// Reverse
digitalWrite(BIN_1, HIGH);
digitalWrite(BIN_2, LOW);
rightSpeed = -rightSpeed;
} else {
// Stop
digitalWrite(BIN_1, LOW);
digitalWrite(BIN_2, LOW);
}
analogWrite(PWM_2, rightSpeed);
}