v1
Dependencies: PinDetect TextLCD mbed
Fork of SunflowerMach1 by
MotorDrivers/Motor.cpp@3:bebfc64cefe4, 2013-11-09 (annotated)
- Committer:
- mdraganic
- Date:
- Sat Nov 09 13:44:18 2013 +0000
- Revision:
- 3:bebfc64cefe4
- Parent:
- 1:3500bf8487d0
- Child:
- 4:03b68322905f
sve skupa i zajedno
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mdraganic | 1:3500bf8487d0 | 1 | #include "Motor.h" |
mdraganic | 1:3500bf8487d0 | 2 | |
mdraganic | 3:bebfc64cefe4 | 3 | Motor::Motor(PinName positivePin, PinName negativePin, PinName pwmPin): |
mdraganic | 3:bebfc64cefe4 | 4 | positiveOut(positivePin), negativeOut(negativePin), pwmOut(pwmPin) { |
mdraganic | 3:bebfc64cefe4 | 5 | |
mdraganic | 3:bebfc64cefe4 | 6 | pwmOut.period(motorPwmPeriod); |
mdraganic | 3:bebfc64cefe4 | 7 | pwmOut = motorPwmInitDutyCycle; |
mdraganic | 3:bebfc64cefe4 | 8 | |
mdraganic | 3:bebfc64cefe4 | 9 | positiveOut = 0; |
mdraganic | 3:bebfc64cefe4 | 10 | negativeOut = 0; |
mdraganic | 3:bebfc64cefe4 | 11 | |
mdraganic | 3:bebfc64cefe4 | 12 | _isMoving = false; |
mdraganic | 1:3500bf8487d0 | 13 | } |
mdraganic | 1:3500bf8487d0 | 14 | |
mdraganic | 1:3500bf8487d0 | 15 | void Motor::movePositive() { |
mdraganic | 1:3500bf8487d0 | 16 | |
mdraganic | 1:3500bf8487d0 | 17 | direction = 1; |
mdraganic | 1:3500bf8487d0 | 18 | move(); |
mdraganic | 1:3500bf8487d0 | 19 | } |
mdraganic | 1:3500bf8487d0 | 20 | |
mdraganic | 1:3500bf8487d0 | 21 | void Motor::moveNegative() { |
mdraganic | 1:3500bf8487d0 | 22 | |
mdraganic | 1:3500bf8487d0 | 23 | direction = -1; |
mdraganic | 1:3500bf8487d0 | 24 | move(); |
mdraganic | 1:3500bf8487d0 | 25 | } |
mdraganic | 1:3500bf8487d0 | 26 | |
mdraganic | 1:3500bf8487d0 | 27 | void Motor::move() { |
mdraganic | 1:3500bf8487d0 | 28 | |
mdraganic | 1:3500bf8487d0 | 29 | positiveOut = 0; |
mdraganic | 1:3500bf8487d0 | 30 | negativeOut = 0; |
mdraganic | 1:3500bf8487d0 | 31 | |
mdraganic | 1:3500bf8487d0 | 32 | switch(direction) { |
mdraganic | 1:3500bf8487d0 | 33 | case 0: |
mdraganic | 1:3500bf8487d0 | 34 | return; |
mdraganic | 1:3500bf8487d0 | 35 | case 1: |
mdraganic | 1:3500bf8487d0 | 36 | positiveOut = 1; |
mdraganic | 1:3500bf8487d0 | 37 | break; |
mdraganic | 1:3500bf8487d0 | 38 | case -1: |
mdraganic | 1:3500bf8487d0 | 39 | negativeOut = 1; |
mdraganic | 1:3500bf8487d0 | 40 | break; |
mdraganic | 1:3500bf8487d0 | 41 | } |
mdraganic | 1:3500bf8487d0 | 42 | |
mdraganic | 3:bebfc64cefe4 | 43 | for (float i = 1; i > 0; i -= motorPwmChangeSpeed) { |
mdraganic | 3:bebfc64cefe4 | 44 | pwmOut = i; |
mdraganic | 3:bebfc64cefe4 | 45 | wait(motorPwmWaitTime); |
mdraganic | 3:bebfc64cefe4 | 46 | } |
mdraganic | 3:bebfc64cefe4 | 47 | pwmOut = 0; |
mdraganic | 3:bebfc64cefe4 | 48 | _isMoving = true; |
mdraganic | 3:bebfc64cefe4 | 49 | |
mdraganic | 3:bebfc64cefe4 | 50 | // wait_ms(motorDriveTime); |
mdraganic | 3:bebfc64cefe4 | 51 | // stop(); |
mdraganic | 1:3500bf8487d0 | 52 | } |
mdraganic | 1:3500bf8487d0 | 53 | |
mdraganic | 1:3500bf8487d0 | 54 | void Motor::stop() { |
mdraganic | 1:3500bf8487d0 | 55 | |
mdraganic | 3:bebfc64cefe4 | 56 | for (float i = 0; i < 1; i += motorPwmChangeSpeed) { |
mdraganic | 3:bebfc64cefe4 | 57 | pwmOut = i; |
mdraganic | 3:bebfc64cefe4 | 58 | wait(motorPwmWaitTime); |
mdraganic | 3:bebfc64cefe4 | 59 | } |
mdraganic | 3:bebfc64cefe4 | 60 | pwmOut = 1; |
mdraganic | 3:bebfc64cefe4 | 61 | |
mdraganic | 1:3500bf8487d0 | 62 | positiveOut = 0; |
mdraganic | 1:3500bf8487d0 | 63 | negativeOut = 0; |
mdraganic | 1:3500bf8487d0 | 64 | direction = 0; |
mdraganic | 3:bebfc64cefe4 | 65 | _isMoving = false; |
mdraganic | 1:3500bf8487d0 | 66 | } |
mdraganic | 3:bebfc64cefe4 | 67 | |
mdraganic | 3:bebfc64cefe4 | 68 | bool Motor::isMoving() { |
mdraganic | 3:bebfc64cefe4 | 69 | |
mdraganic | 3:bebfc64cefe4 | 70 | return _isMoving; |
mdraganic | 3:bebfc64cefe4 | 71 | } |