Library for Pololu Motor driver - VNH5019 Motor Driver Carrier https://www.pololu.com/product/1451
Dependents: VNH5019_2 VNH5019_1
Diff: MotorDriver.cpp
- Revision:
- 0:c54243e9db1d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MotorDriver.cpp Sat Feb 25 21:54:26 2017 +0000 @@ -0,0 +1,65 @@ +#include "MotorDriver.h" + +MotorDriver::MotorDriver(PinName Pwm, PinName DirA, PinName DirB) : _pwm(Pwm), _dirA(DirA), _dirB(DirB){ + _dirA = 0; + _dirB = 0; + _pwm.period_us(50); + _pwm.write(0.0); + enabled = 0; +} + +void MotorDriver::setSpeed(float power_f) +{ + bool dir; + int speed = abs(power_f); + + if(power_f < 0) + dir = 1; + else + dir = 0; + + setSpeed(dir,speed); +} + +void MotorDriver::setSpeed(bool dir, int power) +{ + if(enabled) + { + _pwm.write(0.0); + _dirA = 0; + _dirB = 0; + _dirA = dir; + _dirB = !dir; + _pwm.write(power/100.0); + } +} + +void MotorDriver::setEnabled(bool newState) +{ + enabled = newState; + if(!enabled) + stop(); +} + +bool MotorDriver::isEnabled() +{ + return enabled; +} + +void MotorDriver::stop() +{ + _pwm.write(0.0); + _dirA = 0; + _dirB = 0; +} + +void MotorDriver::hold() +{ + if(enabled) + { + _pwm.write(0.0); + wait(0.001); + _dirA = 1; + _dirB = 1; + } +} \ No newline at end of file