Motor
motor.cpp@0:8a7754ecb574, 2018-05-16 (annotated)
- Committer:
- ckalintra
- Date:
- Wed May 16 10:28:22 2018 +0000
- Revision:
- 0:8a7754ecb574
Motor
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ckalintra | 0:8a7754ecb574 | 1 | #include "motor.h" |
ckalintra | 0:8a7754ecb574 | 2 | #include "mbed.h" |
ckalintra | 0:8a7754ecb574 | 3 | #define control_speed 1 |
ckalintra | 0:8a7754ecb574 | 4 | |
ckalintra | 0:8a7754ecb574 | 5 | |
ckalintra | 0:8a7754ecb574 | 6 | void MOTOR::stop() {//stop the motors |
ckalintra | 0:8a7754ecb574 | 7 | dir1 = 0; |
ckalintra | 0:8a7754ecb574 | 8 | dir2 = 0; |
ckalintra | 0:8a7754ecb574 | 9 | dir3 = 0; |
ckalintra | 0:8a7754ecb574 | 10 | dir4 = 0; |
ckalintra | 0:8a7754ecb574 | 11 | pwm1.write(0); |
ckalintra | 0:8a7754ecb574 | 12 | pwm2.write(0); |
ckalintra | 0:8a7754ecb574 | 13 | } |
ckalintra | 0:8a7754ecb574 | 14 | |
ckalintra | 0:8a7754ecb574 | 15 | void MOTOR::balance(float speed) {//for balancing the robot |
ckalintra | 0:8a7754ecb574 | 16 | stop();//stop the motor |
ckalintra | 0:8a7754ecb574 | 17 | if (speed<0)//if speed is - go backward |
ckalintra | 0:8a7754ecb574 | 18 | { |
ckalintra | 0:8a7754ecb574 | 19 | dir1 = 1; |
ckalintra | 0:8a7754ecb574 | 20 | dir2 = 0; |
ckalintra | 0:8a7754ecb574 | 21 | dir3 = 0; |
ckalintra | 0:8a7754ecb574 | 22 | dir4 = 1; |
ckalintra | 0:8a7754ecb574 | 23 | float temp = abs(speed);//use PID output to detrmine the speed |
ckalintra | 0:8a7754ecb574 | 24 | pwm1.write(temp); |
ckalintra | 0:8a7754ecb574 | 25 | pwm2.write(temp); |
ckalintra | 0:8a7754ecb574 | 26 | } |
ckalintra | 0:8a7754ecb574 | 27 | else if (speed>0)//if speed is + go forward |
ckalintra | 0:8a7754ecb574 | 28 | { |
ckalintra | 0:8a7754ecb574 | 29 | dir1 = 0; |
ckalintra | 0:8a7754ecb574 | 30 | dir2 = 1; |
ckalintra | 0:8a7754ecb574 | 31 | dir3 = 1; |
ckalintra | 0:8a7754ecb574 | 32 | dir4 = 0; |
ckalintra | 0:8a7754ecb574 | 33 | float temp = abs(speed); |
ckalintra | 0:8a7754ecb574 | 34 | pwm1.write(temp); |
ckalintra | 0:8a7754ecb574 | 35 | pwm2.write(temp); |
ckalintra | 0:8a7754ecb574 | 36 | } |
ckalintra | 0:8a7754ecb574 | 37 | } |
ckalintra | 0:8a7754ecb574 | 38 | |
ckalintra | 0:8a7754ecb574 | 39 | void MOTOR::forward() {//go forward |
ckalintra | 0:8a7754ecb574 | 40 | stop(); |
ckalintra | 0:8a7754ecb574 | 41 | dir1 = 0; |
ckalintra | 0:8a7754ecb574 | 42 | dir2 = 1; |
ckalintra | 0:8a7754ecb574 | 43 | dir3 = 1; |
ckalintra | 0:8a7754ecb574 | 44 | dir4 = 0; |
ckalintra | 0:8a7754ecb574 | 45 | pwm1.write(control_speed); |
ckalintra | 0:8a7754ecb574 | 46 | pwm2.write(control_speed); |
ckalintra | 0:8a7754ecb574 | 47 | } |
ckalintra | 0:8a7754ecb574 | 48 | |
ckalintra | 0:8a7754ecb574 | 49 | void MOTOR::backward() {//go backward |
ckalintra | 0:8a7754ecb574 | 50 | stop(); |
ckalintra | 0:8a7754ecb574 | 51 | dir1 = 1; |
ckalintra | 0:8a7754ecb574 | 52 | dir2 = 0; |
ckalintra | 0:8a7754ecb574 | 53 | dir3 = 0; |
ckalintra | 0:8a7754ecb574 | 54 | dir4 = 1; |
ckalintra | 0:8a7754ecb574 | 55 | pwm1.write(control_speed); |
ckalintra | 0:8a7754ecb574 | 56 | pwm2.write(control_speed); |
ckalintra | 0:8a7754ecb574 | 57 | } |
ckalintra | 0:8a7754ecb574 | 58 | |
ckalintra | 0:8a7754ecb574 | 59 | void MOTOR::left() {//turn left |
ckalintra | 0:8a7754ecb574 | 60 | dir1 = 1; |
ckalintra | 0:8a7754ecb574 | 61 | dir2 = 0; |
ckalintra | 0:8a7754ecb574 | 62 | dir3 = 1; |
ckalintra | 0:8a7754ecb574 | 63 | dir4 = 0; |
ckalintra | 0:8a7754ecb574 | 64 | pwm1.write(control_speed); |
ckalintra | 0:8a7754ecb574 | 65 | pwm2.write(control_speed); |
ckalintra | 0:8a7754ecb574 | 66 | } |
ckalintra | 0:8a7754ecb574 | 67 | |
ckalintra | 0:8a7754ecb574 | 68 | void MOTOR::right() {//turn right |
ckalintra | 0:8a7754ecb574 | 69 | dir1 = 0; |
ckalintra | 0:8a7754ecb574 | 70 | dir2 = 1; |
ckalintra | 0:8a7754ecb574 | 71 | dir3 = 0; |
ckalintra | 0:8a7754ecb574 | 72 | dir4 = 1; |
ckalintra | 0:8a7754ecb574 | 73 | pwm1.write(control_speed); |
ckalintra | 0:8a7754ecb574 | 74 | pwm2.write(control_speed); |
ckalintra | 0:8a7754ecb574 | 75 | } |
ckalintra | 0:8a7754ecb574 | 76 | |
ckalintra | 0:8a7754ecb574 | 77 | |
ckalintra | 0:8a7754ecb574 | 78 | |
ckalintra | 0:8a7754ecb574 | 79 |