Simple LMD18200 Motor Driver Breakout Board Library
Revision 0:52968fafce73, committed 2016-01-01
- Comitter:
- electromotivated
- Date:
- Fri Jan 01 20:40:15 2016 +0000
- Commit message:
- Upload;
Changed in this revision
LMD18200.cpp | Show annotated file Show diff for this revision Revisions of this file |
LMD18200.h | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LMD18200.cpp Fri Jan 01 20:40:15 2016 +0000 @@ -0,0 +1,27 @@ +#include "LMD18200.h" +#include <algorithm> + +LMD18200::LMD18200(PinName pwm, PinName dir) : speed(pwm), direction(dir){ + speed = 0.0; + direction = 0; +} + +void LMD18200::setSpeed(float spd){ + spd = clip(spd, 0.0, 1.0); // Clamp value + speed = spd; // Set PWM Speed +} + +void LMD18200::setDirection(int dir){ + direction = dir; +} + +/* + Clips value to lower/ uppper + @param value The value to clip + @param lower The mininum allowable value + @param upper The maximum allowable value + @return The resulting clipped value +*/ +float LMD18200::clip(float value, float lower, float upper){ + return std::max(lower, std::min(value, upper)); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LMD18200.h Fri Jan 01 20:40:15 2016 +0000 @@ -0,0 +1,41 @@ +#ifndef LMD18200_H +#define LMD18200_H + +#include "mbed.h" + +/* + Very simple class for the LMD18200 H-Bridge Breakout Board +*/ + +class LMD18200{ + public: + /* + Constructor for LMD18200 objects + @param pwm PWM Pin used to set speed + @param dir Digital Pin used to set direction + */ + LMD18200(PinName pwm, PinName dir); + + /* + Set speed of motor + @param spd The speed of the motor, as a percentage, + normalized between 0 and 1 + */ + void setSpeed(float spd); + + /* + Set the direction of the motor + @param dir The direction of the motor, 0 or 1: 0 = FWD, 1 = REVERSE + + */ + void setDirection(int dir); + + private: + PwmOut speed; + DigitalOut direction; + /* + Clamps value between lower and upper values + */ + float clip(float value, float lower, float upper); +}; +#endif \ No newline at end of file