v1

Dependencies:   PinDetect TextLCD mbed

Fork of SunflowerMach1 by Milan Draganic

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?

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 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 }