Simple motor controller library, using DIR, PWM, nSLP pin like pololu.
Diff: MotorControler.cpp
- Revision:
- 0:e3207dd7809a
- Child:
- 1:ed3dfe4ecc8a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MotorControler.cpp Wed Mar 04 03:53:06 2020 +0000 @@ -0,0 +1,39 @@ +#include "MotorControler.h" + +MotorControler::MotorControler(PinName DIR, PinName PWM, PinName SLP) : _DIR(DIR), _PWM(PWM), _nSLP(SLP) +{ + _nSLP = 0; +} + +void MotorControler::enableDriver() +{ + _nSLP = 1; +} + +void MotorControler::disableDriver() +{ + _nSLP = 0; +} + +void MotorControler::setSpeed(float speed) +{ + uint8_t reverse = 0; + if (speed < 0) + { + speed = -speed; // Make speed a positive quantity + reverse = 1; // Preserve the direction + } + // 最大デューティ比で制限 + if (speed > 1) + speed = 1; + + _PWM = speed; + if (reverse ^ FLIP_MOTOR_DIR) + { + _DIR = 1; + } + else + { + _DIR = 0; + } +} \ No newline at end of file