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: LSM9DS1 RangeFinder FastPWM
Dependents: PM2_Example_PES_board PM2_Example_PES_board PM2_Example_PES_board PM2_Example_PES_board ... more
Diff: SpeedController.h
- Revision:
- 3:8b42e643b294
- Child:
- 4:9c003c402033
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SpeedController.h Thu Apr 01 14:31:43 2021 +0000
@@ -0,0 +1,49 @@
+#ifndef SpeedController_H_
+#define SpeedController_H_
+#include <cstdlib>
+#include <mbed.h>
+#include "EncoderCounter.h"
+#include "LowpassFilter.h"
+#include "ThreadFlag.h"
+
+class SpeedController
+{
+
+public:
+
+ SpeedController(PwmOut& pwm, EncoderCounter& encoderCounter);
+
+ virtual ~SpeedController();
+
+ void setDesiredSpeed(float desiredSpeed);
+ float getSpeed();
+
+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;
+
+ PwmOut& 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_ */
\ No newline at end of file
