Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed MODSERIAL FATFileSystem
PololuHbridge/PololuHBridge.cpp
- Committer:
- joel_ssc
- Date:
- 2019-02-19
- Revision:
- 84:eccd8e837134
- Parent:
- 74:d281aaef9766
File content as of revision 84:eccd8e837134:
#include "mbed.h"
#include "PololuHBridge.hpp"
PololuHBridge::PololuHBridge(PinName pwm, PinName dir, PinName reset):
_pwm(pwm),
_direction(dir),
_rst(reset)
{
_pwm.period_us(50);
run(0.0);
//pull Hbridge reset low then high to clear any faults
_rst = 0;
_rst = 1;
_direction = 0;
}
void PololuHBridge::run(float cmd)
{
_p = _clamp(cmd, -1.0, 1.0);
//This sets motor direction. Positive should give positve velocity (piston retract)
if (_p <= 0.0) {
_direction = 1;
//the pwm function needs an absolute value
_p = abs(_p);
} else if (_p > 0.0) {
_direction = 0;
}
_pwm = _p;
return;
}
void PololuHBridge::reset()
{
_rst = 0;
_rst = 1;
}
void PololuHBridge::stop()
{
//stop the motor output
_pwm = 0;
}
float PololuHBridge::_clamp(float value, float min, float max)
{
if(value < min) {
return min;
} else if(value > max) {
return max;
} else {
return value;
}
}