Saltware / Mbed 2 deprecated Water Play

Dependencies:   mbed DRV88255 TextLCD Ping mbed-rtos

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?

UserRevisionLine numberNew 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