This library is an attempt to encapsulate the Pololu motor board.

Motor.cpp

Committer:
buckeyes1997
Date:
2013-02-11
Revision:
1:69e4a93b718d
Parent:
0:b7c4b6de973e

File content as of revision 1:69e4a93b718d:

#include "Motor.h"
#include "mbed.h"


Motor::Motor(PinName pwm, PinName dir1, PinName dir2): _pwm(pwm), _dir1(dir1), _dir2(dir2)
{
    _direction=1;           //default fwd
    _pwm.period(0.00005);   //20Khz
    _pwm = 0;               //default pwm off
    _dir1 = 0;
    _dir2 = 0;

}

float Motor::speed(float speed, bool direction)
{
    if(direction == true) {
        _dir1=1;
        _dir2=0;
    } else {
        _dir1=0;
        _dir2=1;
    }
    if(speed > 1) {
        speed = 1;
    }
    if(speed < -1) {
        speed = -1;
    }

    _pwm = abs(speed);
    return speed;
}

float Motor::speed(float speed)
{
    if(speed > 1) {
        speed = 1;
    }
    if(speed < -1) {
        speed = -1;
    }
    if(speed < 0) {
        _dir1=1;
        _dir2=0;
    } else {
        _dir1=0;
        _dir2=1;
    }
    _pwm = abs(speed);
    return speed;
}

Motor& Motor::operator= (float speed)
{
    if(speed > 1) {
        speed = 1;
    }
    if(speed < -1) {
        speed = -1;
    }
    if(speed < 0) {
        _dir1=1;
        _dir2=0;
    } else {
        _dir1=0;
        _dir2=1;
    }
    _pwm = abs(speed);
    return *this;
}