DCS_TEAM / Mbed 2 deprecated Chemical_Sensor_DMA

Dependencies:   mbed

Dependents:   DCS_FINAL_CODE

Fork of Chemical_Sensor_DMA by Jared Baxter

Committer:
baxterja
Date:
Fri Nov 06 19:28:49 2015 +0000
Revision:
5:1b2dc43e8947
Parent:
2:3771b3195c7b
Dewayne,  Use this one

Who changed what in which revision?

UserRevisionLine numberNew contents of line
baxterja 2:3771b3195c7b 1 #include "MotorControl.h"
baxterja 2:3771b3195c7b 2 #include "mbed.h"
baxterja 2:3771b3195c7b 3
baxterja 2:3771b3195c7b 4 // constructor
baxterja 2:3771b3195c7b 5 MotorControl::MotorControl(PinName cw, PinName ccw, int period, int safetyPeriod) :
baxterja 2:3771b3195c7b 6 _cw(cw),
baxterja 2:3771b3195c7b 7 _ccw(ccw) {
baxterja 2:3771b3195c7b 8
baxterja 2:3771b3195c7b 9 // turn motor off
baxterja 2:3771b3195c7b 10 _cw = 0;
baxterja 2:3771b3195c7b 11 _ccw = 0;
baxterja 2:3771b3195c7b 12
baxterja 2:3771b3195c7b 13 _cw.period_us(period);
baxterja 2:3771b3195c7b 14 _ccw.period_us(period);
baxterja 2:3771b3195c7b 15
baxterja 2:3771b3195c7b 16 _period = period;
baxterja 2:3771b3195c7b 17 _safetyPeriod = safetyPeriod;
baxterja 2:3771b3195c7b 18 }
baxterja 2:3771b3195c7b 19
baxterja 2:3771b3195c7b 20 void MotorControl::off() {
baxterja 2:3771b3195c7b 21 _cw = 0;
baxterja 2:3771b3195c7b 22 _ccw = 0;
baxterja 2:3771b3195c7b 23 pause_us(_safetyPeriod);
baxterja 2:3771b3195c7b 24 }
baxterja 2:3771b3195c7b 25
baxterja 2:3771b3195c7b 26 void MotorControl::clockwise(float dutyCycle) {
baxterja 2:3771b3195c7b 27 _cw = dutyCycle;
baxterja 2:3771b3195c7b 28 }
baxterja 2:3771b3195c7b 29
baxterja 2:3771b3195c7b 30 void MotorControl::releaseMallet() {
baxterja 2:3771b3195c7b 31 // make sure motor is off
baxterja 2:3771b3195c7b 32 off();
baxterja 2:3771b3195c7b 33
baxterja 2:3771b3195c7b 34 // pulse clockwise to release mallet
baxterja 2:3771b3195c7b 35 _cw = 1;
baxterja 2:3771b3195c7b 36 pause_ms(10);
baxterja 2:3771b3195c7b 37 _cw = 0;
baxterja 2:3771b3195c7b 38 pause_ms(75);
baxterja 2:3771b3195c7b 39
baxterja 2:3771b3195c7b 40 // pulse counter-clockwise to stop snail cam
baxterja 2:3771b3195c7b 41 _ccw = 0.7;
baxterja 2:3771b3195c7b 42 pause_ms(8);
baxterja 2:3771b3195c7b 43 _ccw = 0;
baxterja 2:3771b3195c7b 44
baxterja 2:3771b3195c7b 45 // make sure motor is off
baxterja 2:3771b3195c7b 46 off();
baxterja 2:3771b3195c7b 47 }
baxterja 2:3771b3195c7b 48
baxterja 2:3771b3195c7b 49 void MotorControl::reset() {
baxterja 2:3771b3195c7b 50
baxterja 2:3771b3195c7b 51 }
baxterja 2:3771b3195c7b 52
baxterja 2:3771b3195c7b 53 void MotorControl::hardReset(int duration) {
baxterja 2:3771b3195c7b 54 // make sure motor is off
baxterja 2:3771b3195c7b 55 off();
baxterja 2:3771b3195c7b 56
baxterja 2:3771b3195c7b 57 // long pulse clockwise to reset mallet
baxterja 2:3771b3195c7b 58 _cw = 1;
baxterja 2:3771b3195c7b 59 pause_ms(200);
baxterja 2:3771b3195c7b 60 _cw = 0;
baxterja 2:3771b3195c7b 61
baxterja 2:3771b3195c7b 62 // short pulse counter-clockwise to stop snail cam
baxterja 2:3771b3195c7b 63 _ccw = 1;
baxterja 2:3771b3195c7b 64 pause_ms(10);
baxterja 2:3771b3195c7b 65 _ccw = 0;
baxterja 2:3771b3195c7b 66
baxterja 2:3771b3195c7b 67
baxterja 2:3771b3195c7b 68 wait_ms(duration);
baxterja 2:3771b3195c7b 69 // short pulse counter-clockwise to set snail cam in groove on mallet
baxterja 2:3771b3195c7b 70 _ccw = 1;
baxterja 2:3771b3195c7b 71 pause_ms(3);
baxterja 2:3771b3195c7b 72 _ccw = 0;
baxterja 2:3771b3195c7b 73
baxterja 2:3771b3195c7b 74 // make sure motor is off
baxterja 2:3771b3195c7b 75 off();
baxterja 2:3771b3195c7b 76 }