void set_desired_temperature(float desired_temperature);
float get_temperature();
-
- enum RUNAWAY_TYPE {NOT_HEATING, WAITING_FOR_TEMP_TO_BE_REACHED, TARGET_TEMPERATURE_REACHED};
+
friend class PID_Autotuner;
void load_config();
uint32_t thermistor_read_tick(uint32_t dummy);
void pid_process(float);
+ void setPIDp(float p);
+ void setPIDi(float i);
+ void setPIDd(float d);
int pool_index;
float preset2;
TempSensor *sensor;
-
- // PID runtime
float i_max;
-
int o;
-
float last_reading;
-
float readings_per_second;
-
- uint16_t name_checksum;
-
Pwm heater_pin;
- uint16_t set_m_code;
- uint16_t set_and_wait_m_code;
- uint16_t get_m_code;
-
std::string designator;
- void setPIDp(float p);
- void setPIDi(float i);
- void setPIDd(float d);
float hysteresis;
float iTerm;
float d_factor;
float PIDdt;
- // Temperature runaway values
- RUNAWAY_TYPE runaway_state;
-
+ enum RUNAWAY_TYPE {NOT_HEATING, HEATING_UP, COOLING_DOWN, TARGET_TEMPERATURE_REACHED};
+ // pack these to save memory
struct {
- uint8_t runaway_heating_timer:8;
+ uint16_t name_checksum;
+ uint16_t set_m_code:10;
+ uint16_t set_and_wait_m_code:10;
+ uint16_t get_m_code:10;
+ RUNAWAY_TYPE runaway_state:2;
// Temperature runaway config options
- uint8_t runaway_range:8;
- uint8_t runaway_heating_timeout:8;
+ uint8_t runaway_range:6; // max 63
+ uint16_t runaway_heating_timeout:8; // 2040 secs
+ uint16_t runaway_cooling_timeout:8; // 2040 secs
+ uint16_t runaway_timer:8;
+ uint8_t tick:3;
bool use_bangbang:1;
bool waiting:1;
bool temp_violated:1;