MacroRat / MouseCode

Dependencies:   ITG3200 QEI

Committer:
christine222
Date:
Thu May 18 02:52:22 2017 +0000
Revision:
21:9a6cb07bdcb6
Parent:
15:b80555a4a8b9
better PID constants for forwardWallIR and added no wall encoder pid moveForwardEncoder() function that is used in forwardWallIR()

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kyleliangus 8:a0760acdc59e 1 #include "mbed.h"
kyleliangus 8:a0760acdc59e 2 #include "motor.h"
kyleliangus 8:a0760acdc59e 3
kyleliangus 8:a0760acdc59e 4 void Motor::backward(double voltage) {
kyleliangus 12:5790e56a056f 5 if(voltage > maxSpeed){
kyleliangus 12:5790e56a056f 6 voltage = maxSpeed;
christine222 13:2032db00f168 7 }else if(voltage < minSpeed){
christine222 13:2032db00f168 8 voltage = minSpeed;
kyleliangus 12:5790e56a056f 9 }
kyleliangus 15:b80555a4a8b9 10 enableForw.write(0);
kyleliangus 15:b80555a4a8b9 11 enableBack.write(1);
kyleliangus 15:b80555a4a8b9 12 motorSpeed.write( voltage );
kyleliangus 8:a0760acdc59e 13 }
kyleliangus 8:a0760acdc59e 14
kyleliangus 8:a0760acdc59e 15 void Motor::forward(double voltage) {
kyleliangus 12:5790e56a056f 16 if(voltage > maxSpeed){
kyleliangus 12:5790e56a056f 17 voltage = maxSpeed;
christine222 13:2032db00f168 18 }else if(voltage < minSpeed){
christine222 13:2032db00f168 19 voltage = minSpeed;
kyleliangus 12:5790e56a056f 20 }
kyleliangus 15:b80555a4a8b9 21 enableForw.write(1);
kyleliangus 15:b80555a4a8b9 22 enableBack.write(0);
kyleliangus 15:b80555a4a8b9 23 motorSpeed.write( voltage );
kyleliangus 8:a0760acdc59e 24 }
kyleliangus 8:a0760acdc59e 25
kyleliangus 12:5790e56a056f 26 void Motor::move(double voltage) {
kyleliangus 12:5790e56a056f 27 if(voltage < 0){
christine222 13:2032db00f168 28 backward(-voltage);
kyleliangus 12:5790e56a056f 29 }
kyleliangus 12:5790e56a056f 30 if(voltage > 0){
kyleliangus 12:5790e56a056f 31 forward(voltage);
kyleliangus 12:5790e56a056f 32 }
kyleliangus 12:5790e56a056f 33 }
kyleliangus 12:5790e56a056f 34
kyleliangus 8:a0760acdc59e 35
kyleliangus 8:a0760acdc59e 36 void Motor::brake() {
kyleliangus 15:b80555a4a8b9 37 enableForw.write(1);
kyleliangus 15:b80555a4a8b9 38 enableBack.write(1);
kyleliangus 15:b80555a4a8b9 39 motorSpeed.write( BRAKE_VOLTAGE );
kyleliangus 8:a0760acdc59e 40 }
kyleliangus 8:a0760acdc59e 41
kyleliangus 8:a0760acdc59e 42 void Motor::coast() {
kyleliangus 15:b80555a4a8b9 43 enableForw.write(0);
kyleliangus 15:b80555a4a8b9 44 enableBack.write(0);
kyleliangus 15:b80555a4a8b9 45 motorSpeed.write( 0 );
kyleliangus 8:a0760acdc59e 46 }