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
Diff: PololuHbridge/PololuHBridge.cpp
- Revision:
- 41:ed5b95ab97e3
- Parent:
- 9:d5fcdcb3c89d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PololuHbridge/PololuHBridge.cpp Wed Feb 14 21:10:51 2018 +0000
@@ -0,0 +1,55 @@
+#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;
+ }
+}
\ No newline at end of file