Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of Chemical_Sensor_DMA by
MotorControl.cpp@5:1b2dc43e8947, 2015-11-06 (annotated)
- 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?
User | Revision | Line number | New 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 | } |