motor i senzor
Dependencies: TextLCD mbed PinDetect
MotorDrivers/Motor.cpp@6:902bec57d9ae, 2013-11-11 (annotated)
- Committer:
- mdraganic
- Date:
- Mon Nov 11 11:45:55 2013 +0000
- Revision:
- 6:902bec57d9ae
- Parent:
- 4:03b68322905f
- Child:
- 10:0b8a98b1e6b1
gotov driver i tracker
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 | 1:3500bf8487d0 | 11 | } |
mdraganic | 1:3500bf8487d0 | 12 | |
mdraganic | 4:03b68322905f | 13 | void Motor::start() { |
mdraganic | 1:3500bf8487d0 | 14 | |
mdraganic | 3:bebfc64cefe4 | 15 | for (float i = 1; i > 0; i -= motorPwmChangeSpeed) { |
mdraganic | 3:bebfc64cefe4 | 16 | pwmOut = i; |
mdraganic | 3:bebfc64cefe4 | 17 | wait(motorPwmWaitTime); |
mdraganic | 3:bebfc64cefe4 | 18 | } |
mdraganic | 3:bebfc64cefe4 | 19 | pwmOut = 0; |
mdraganic | 1:3500bf8487d0 | 20 | } |
mdraganic | 1:3500bf8487d0 | 21 | |
mdraganic | 1:3500bf8487d0 | 22 | void Motor::stop() { |
mdraganic | 1:3500bf8487d0 | 23 | |
mdraganic | 4:03b68322905f | 24 | if(direction == 0) |
mdraganic | 4:03b68322905f | 25 | return; |
mdraganic | 4:03b68322905f | 26 | |
mdraganic | 3:bebfc64cefe4 | 27 | for (float i = 0; i < 1; i += motorPwmChangeSpeed) { |
mdraganic | 3:bebfc64cefe4 | 28 | pwmOut = i; |
mdraganic | 3:bebfc64cefe4 | 29 | wait(motorPwmWaitTime); |
mdraganic | 3:bebfc64cefe4 | 30 | } |
mdraganic | 3:bebfc64cefe4 | 31 | pwmOut = 1; |
mdraganic | 3:bebfc64cefe4 | 32 | |
mdraganic | 1:3500bf8487d0 | 33 | positiveOut = 0; |
mdraganic | 1:3500bf8487d0 | 34 | negativeOut = 0; |
mdraganic | 1:3500bf8487d0 | 35 | direction = 0; |
mdraganic | 6:902bec57d9ae | 36 | wait_ms(1000); |
mdraganic | 4:03b68322905f | 37 | } |
mdraganic | 4:03b68322905f | 38 | |
mdraganic | 4:03b68322905f | 39 | void Motor::movePositive() { |
mdraganic | 4:03b68322905f | 40 | |
mdraganic | 4:03b68322905f | 41 | if(direction == 1) |
mdraganic | 4:03b68322905f | 42 | return; |
mdraganic | 4:03b68322905f | 43 | |
mdraganic | 4:03b68322905f | 44 | if(direction == -1) |
mdraganic | 4:03b68322905f | 45 | stop(); |
mdraganic | 4:03b68322905f | 46 | |
mdraganic | 4:03b68322905f | 47 | positiveOut = 1; |
mdraganic | 4:03b68322905f | 48 | direction = 1; |
mdraganic | 4:03b68322905f | 49 | start(); |
mdraganic | 4:03b68322905f | 50 | } |
mdraganic | 4:03b68322905f | 51 | |
mdraganic | 4:03b68322905f | 52 | void Motor::moveNegative() { |
mdraganic | 4:03b68322905f | 53 | |
mdraganic | 4:03b68322905f | 54 | if(direction == -1) |
mdraganic | 4:03b68322905f | 55 | return; |
mdraganic | 4:03b68322905f | 56 | |
mdraganic | 4:03b68322905f | 57 | if(direction == 1) |
mdraganic | 4:03b68322905f | 58 | stop(); |
mdraganic | 4:03b68322905f | 59 | |
mdraganic | 4:03b68322905f | 60 | negativeOut = 1; |
mdraganic | 4:03b68322905f | 61 | direction = -1; |
mdraganic | 4:03b68322905f | 62 | start(); |
mdraganic | 1:3500bf8487d0 | 63 | } |
mdraganic | 3:bebfc64cefe4 | 64 | |
mdraganic | 3:bebfc64cefe4 | 65 | bool Motor::isMoving() { |
mdraganic | 3:bebfc64cefe4 | 66 | |
mdraganic | 4:03b68322905f | 67 | return direction == 0; |
mdraganic | 3:bebfc64cefe4 | 68 | } |