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: mbed DRV88255 TextLCD Ping mbed-rtos
PIDController.h@46:7e4c1f2ab76c, 2016-06-15 (annotated)
- Committer:
- sbouber1
- Date:
- Wed Jun 15 10:55:44 2016 +0000
- Revision:
- 46:7e4c1f2ab76c
- Parent:
- 44:7c932cc5991b
- Child:
- 57:8dc3192ff150
update
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| sbouber1 | 28:f4a4ee58d57e | 1 | #ifndef __PIDCONTROLLER_H__ | 
| sbouber1 | 28:f4a4ee58d57e | 2 | #define __PIDCONTROLLER_H__ | 
| sbouber1 | 28:f4a4ee58d57e | 3 | |
| sbouber1 | 28:f4a4ee58d57e | 4 | #include "mbed.h" | 
| sbouber1 | 32:1e4919a44196 | 5 | #include "DRV8825.h" | 
| sbouber1 | 32:1e4919a44196 | 6 | #include "stdio.h" | 
| sbouber1 | 28:f4a4ee58d57e | 7 | #include "SensorController.h" | 
| sbouber1 | 28:f4a4ee58d57e | 8 | |
| sbouber1 | 28:f4a4ee58d57e | 9 | |
| sbouber1 | 32:1e4919a44196 | 10 | #define MAX_SPEED 8000 | 
| sbouber1 | 32:1e4919a44196 | 11 | #define MICROSTEPS_PER_STEP 16 | 
| sbouber1 | 32:1e4919a44196 | 12 | |
| sbouber1 | 32:1e4919a44196 | 13 | #define LEFT 1 | 
| sbouber1 | 32:1e4919a44196 | 14 | #define RIGHT 0 | 
| sbouber1 | 32:1e4919a44196 | 15 | |
| sbouber1 | 38:930469a33001 | 16 | #define STARTUP_ITERATIONS 10 | 
| sbouber1 | 38:930469a33001 | 17 | |
| sbouber1 | 28:f4a4ee58d57e | 18 | class PIDController : public Controller { | 
| sbouber1 | 28:f4a4ee58d57e | 19 | |
| sbouber1 | 28:f4a4ee58d57e | 20 | |
| sbouber1 | 28:f4a4ee58d57e | 21 | public: | 
| sbouber1 | 28:f4a4ee58d57e | 22 | PIDController(bool threaded, int interval_ms, SensorController *temp, SensorController *salt, SensorController *proximity) | 
| sbouber1 | 28:f4a4ee58d57e | 23 | : Controller(threaded, interval_ms) { | 
| sbouber1 | 28:f4a4ee58d57e | 24 | this->temp = temp; | 
| sbouber1 | 28:f4a4ee58d57e | 25 | this->salt = salt; | 
| sbouber1 | 28:f4a4ee58d57e | 26 | this->proximity = proximity; | 
| joran | 40:1668630544c7 | 27 | this->pumping = false; | 
| joran | 44:7c932cc5991b | 28 | this->heating = false; | 
| sbouber1 | 28:f4a4ee58d57e | 29 | } | 
| sbouber1 | 28:f4a4ee58d57e | 30 | |
| sbouber1 | 28:f4a4ee58d57e | 31 | virtual void update(); | 
| sbouber1 | 28:f4a4ee58d57e | 32 | |
| sbouber1 | 35:c9261391a995 | 33 | virtual std::string get_name(); | 
| sbouber1 | 35:c9261391a995 | 34 | |
| sbouber1 | 35:c9261391a995 | 35 | bool is_heating(); | 
| joran | 40:1668630544c7 | 36 | bool is_pumping(); | 
| sbouber1 | 46:7e4c1f2ab76c | 37 | |
| sbouber1 | 46:7e4c1f2ab76c | 38 | void doTestingStuff(int ml); | 
| sbouber1 | 28:f4a4ee58d57e | 39 | |
| sbouber1 | 28:f4a4ee58d57e | 40 | private: | 
| sbouber1 | 28:f4a4ee58d57e | 41 | SensorController *temp; | 
| sbouber1 | 28:f4a4ee58d57e | 42 | SensorController *salt; | 
| sbouber1 | 28:f4a4ee58d57e | 43 | SensorController *proximity; | 
| joran | 40:1668630544c7 | 44 | |
| joran | 40:1668630544c7 | 45 | |
| sbouber1 | 35:c9261391a995 | 46 | bool heating; | 
| joran | 40:1668630544c7 | 47 | bool pumping; | 
| sbouber1 | 28:f4a4ee58d57e | 48 | |
| sbouber1 | 32:1e4919a44196 | 49 | void pump_salt_water(int ml); | 
| sbouber1 | 32:1e4919a44196 | 50 | |
| sbouber1 | 32:1e4919a44196 | 51 | void pump_fresh_water(int ml); | 
| sbouber1 | 32:1e4919a44196 | 52 | |
| sbouber1 | 32:1e4919a44196 | 53 | void pump_water(DRV8825 *mtr, int ml); | 
| sbouber1 | 32:1e4919a44196 | 54 | |
| sbouber1 | 32:1e4919a44196 | 55 | float getMlSaltyWater(float, float); | 
| sbouber1 | 32:1e4919a44196 | 56 | |
| sbouber1 | 32:1e4919a44196 | 57 | float getMlFreshWater(float, float); | 
| sbouber1 | 32:1e4919a44196 | 58 | |
| sbouber1 | 35:c9261391a995 | 59 | float getSaltInGrams(); | 
| sbouber1 | 28:f4a4ee58d57e | 60 | |
| sbouber1 | 35:c9261391a995 | 61 | void set_heating(bool enabled); | 
| sbouber1 | 28:f4a4ee58d57e | 62 | }; | 
| sbouber1 | 28:f4a4ee58d57e | 63 | |
| sbouber1 | 28:f4a4ee58d57e | 64 | |
| sbouber1 | 28:f4a4ee58d57e | 65 | #endif |