v1

Dependencies:   PinDetect TextLCD mbed

Fork of SunflowerMach1 by Milan Draganic

Committer:
cvitas
Date:
Fri Jan 17 14:40:31 2014 +0000
Revision:
12:8cb20afa1694
Parent:
10:0b8a98b1e6b1
danchi 1

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