Workshop 2

Dependencies:   FastPWM

Committer:
pmic
Date:
Tue Apr 06 11:21:54 2021 +0000
Revision:
4:9c003c402033
Parent:
3:8b42e643b294
Child:
5:6cd242a61e4c
Update Libary via copy+past, no idea why it is not working via mbed studio.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pmic 3:8b42e643b294 1 #ifndef SpeedController_H_
pmic 3:8b42e643b294 2 #define SpeedController_H_
pmic 3:8b42e643b294 3 #include <cstdlib>
pmic 3:8b42e643b294 4 #include <mbed.h>
pmic 3:8b42e643b294 5 #include "EncoderCounter.h"
pmic 3:8b42e643b294 6 #include "LowpassFilter.h"
pmic 3:8b42e643b294 7 #include "ThreadFlag.h"
pmic 3:8b42e643b294 8
pmic 3:8b42e643b294 9 class SpeedController
pmic 3:8b42e643b294 10 {
pmic 3:8b42e643b294 11 public:
pmic 3:8b42e643b294 12
pmic 4:9c003c402033 13 SpeedController(float COUNTS_PER_TURN, float KN, float KP, float MAX_VOLTAGE, PwmOut& pwm, EncoderCounter& encoderCounter);
pmic 3:8b42e643b294 14
pmic 3:8b42e643b294 15 virtual ~SpeedController();
pmic 3:8b42e643b294 16
pmic 4:9c003c402033 17 void setDesiredSpeedRPM(float desiredSpeed);
pmic 4:9c003c402033 18 float getSpeedRPM();
pmic 4:9c003c402033 19 void setDesiredSpeedRPS(float desiredSpeed);
pmic 4:9c003c402033 20 float getSpeedRPS();
pmic 3:8b42e643b294 21
pmic 3:8b42e643b294 22 private:
pmic 3:8b42e643b294 23
pmic 3:8b42e643b294 24 static const float PERIOD;
pmic 4:9c003c402033 25 // static const float COUNTS_PER_TURN;
pmic 3:8b42e643b294 26 static const float LOWPASS_FILTER_FREQUENCY;
pmic 4:9c003c402033 27 // static const float KN;
pmic 4:9c003c402033 28 // static const float KP;
pmic 4:9c003c402033 29 // static const float MAX_VOLTAGE;
pmic 3:8b42e643b294 30 static const float MIN_DUTY_CYCLE;
pmic 3:8b42e643b294 31 static const float MAX_DUTY_CYCLE;
pmic 3:8b42e643b294 32
pmic 4:9c003c402033 33 float COUNTS_PER_TURN;
pmic 4:9c003c402033 34 float KN;
pmic 4:9c003c402033 35 float KP;
pmic 4:9c003c402033 36 float MAX_VOLTAGE;
pmic 4:9c003c402033 37
pmic 3:8b42e643b294 38 PwmOut& pwm;
pmic 3:8b42e643b294 39 EncoderCounter& encoderCounter;
pmic 3:8b42e643b294 40 short previousValueCounter;
pmic 3:8b42e643b294 41 LowpassFilter speedFilter;
pmic 3:8b42e643b294 42 float desiredSpeed;
pmic 3:8b42e643b294 43 float actualSpeed;
pmic 4:9c003c402033 44 // float actualAngle;
pmic 3:8b42e643b294 45
pmic 3:8b42e643b294 46 ThreadFlag threadFlag;
pmic 3:8b42e643b294 47 Thread thread;
pmic 3:8b42e643b294 48 Ticker ticker;
pmic 3:8b42e643b294 49
pmic 3:8b42e643b294 50 void sendThreadFlag();
pmic 3:8b42e643b294 51 void run();
pmic 3:8b42e643b294 52 };
pmic 3:8b42e643b294 53
pmic 3:8b42e643b294 54 #endif /* SpeedController_H_ */