PM2_Lib
Dependencies: LSM9DS1 RangeFinder FastPWM
SpeedController.h
- Committer:
- pmic
- Date:
- 2021-04-06
- Revision:
- 5:6cd242a61e4c
- Parent:
- 4:9c003c402033
- Child:
- 6:41dd03654c44
File content as of revision 5:6cd242a61e4c:
#ifndef SpeedController_H_ #define SpeedController_H_ #include <cstdlib> #include <mbed.h> #include "EncoderCounter.h" #include "LowpassFilter.h" #include "ThreadFlag.h" #include "FastPWM.h" class SpeedController { public: SpeedController(float COUNTS_PER_TURN, float KN, float KP, float MAX_VOLTAGE, FastPWM& pwm, EncoderCounter& encoderCounter); virtual ~SpeedController(); void setDesiredSpeedRPM(float desiredSpeed); float getSpeedRPM(); void setDesiredSpeedRPS(float desiredSpeed); float getSpeedRPS(); private: static const float PERIOD; // static const float COUNTS_PER_TURN; static const float LOWPASS_FILTER_FREQUENCY; // static const float KN; // static const float KP; // static const float MAX_VOLTAGE; static const float MIN_DUTY_CYCLE; static const float MAX_DUTY_CYCLE; float COUNTS_PER_TURN; float KN; float KP; float MAX_VOLTAGE; FastPWM& pwm; EncoderCounter& encoderCounter; short previousValueCounter; LowpassFilter speedFilter; float desiredSpeed; float actualSpeed; // float actualAngle; ThreadFlag threadFlag; Thread thread; Ticker ticker; void sendThreadFlag(); void run(); }; #endif /* SpeedController_H_ */