v1

Dependencies:   PinDetect TextLCD mbed

Fork of SunflowerMach1 by Milan Draganic

Committer:
mdraganic
Date:
Sat Nov 09 18:35:13 2013 +0000
Revision:
4:03b68322905f
Parent:
3:bebfc64cefe4
Child:
6:902bec57d9ae
popravljena logika upravljanja motorima

Who changed what in which revision?

UserRevisionLine numberNew 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 4:03b68322905f 36 }
mdraganic 4:03b68322905f 37
mdraganic 4:03b68322905f 38 void Motor::movePositive() {
mdraganic 4:03b68322905f 39
mdraganic 4:03b68322905f 40 if(direction == 1)
mdraganic 4:03b68322905f 41 return;
mdraganic 4:03b68322905f 42
mdraganic 4:03b68322905f 43 if(direction == -1)
mdraganic 4:03b68322905f 44 stop();
mdraganic 4:03b68322905f 45
mdraganic 4:03b68322905f 46 positiveOut = 1;
mdraganic 4:03b68322905f 47 direction = 1;
mdraganic 4:03b68322905f 48 start();
mdraganic 4:03b68322905f 49 }
mdraganic 4:03b68322905f 50
mdraganic 4:03b68322905f 51 void Motor::moveNegative() {
mdraganic 4:03b68322905f 52
mdraganic 4:03b68322905f 53 if(direction == -1)
mdraganic 4:03b68322905f 54 return;
mdraganic 4:03b68322905f 55
mdraganic 4:03b68322905f 56 if(direction == 1)
mdraganic 4:03b68322905f 57 stop();
mdraganic 4:03b68322905f 58
mdraganic 4:03b68322905f 59 negativeOut = 1;
mdraganic 4:03b68322905f 60 direction = -1;
mdraganic 4:03b68322905f 61 start();
mdraganic 1:3500bf8487d0 62 }
mdraganic 3:bebfc64cefe4 63
mdraganic 3:bebfc64cefe4 64 bool Motor::isMoving() {
mdraganic 3:bebfc64cefe4 65
mdraganic 4:03b68322905f 66 return direction == 0;
mdraganic 3:bebfc64cefe4 67 }