StateHandler: minor improvments

This commit is contained in:
Evgenii Meshcheriakov 2022-10-21 11:51:30 +03:00
parent 611ae13362
commit 95ae3cd4a8

View File

@ -141,6 +141,7 @@ StateHandler::stateAuto (const Event &event)
pid(); pid();
this->A01->write(fan_speed.getCurrent()); this->A01->write(fan_speed.getCurrent());
#endif #endif
#if !PID
if(saved_curr_value[AUTO] < saved_set_value[AUTO]) { if(saved_curr_value[AUTO] < saved_set_value[AUTO]) {
fan_speed.inc(); fan_speed.inc();
this->A01->write(fan_speed.getCurrent()); this->A01->write(fan_speed.getCurrent());
@ -148,6 +149,7 @@ StateHandler::stateAuto (const Event &event)
fan_speed.dec(); fan_speed.dec();
this->A01->write(fan_speed.getCurrent()); this->A01->write(fan_speed.getCurrent());
} }
#endif
break; break;
} }
} }
@ -168,10 +170,10 @@ StateHandler::stateSensors (const Event &event)
sensors_data[TEMPERATURE] = humidity.readT(); sensors_data[TEMPERATURE] = humidity.readT();
sensors_data[HUMIDITY] = humidity.readRH(); sensors_data[HUMIDITY] = humidity.readRH();
sensors_data[CO2] = co2.read(); sensors_data[CO2] = co2.read();
#if 1
char line_up[16] = { 0 }; char line_up[16] = { 0 };
char line_down[16] = { 0 }; char line_down[16] = { 0 };
snprintf (line_up, 16, "PRE:%02d TEM:%02d", sensors_data[PRESSUREDAT],sensors_data[TEMPERATURE]);
snprintf (line_up, 16, "PRE:%02dPa TEM:%02dC", sensors_data[PRESSUREDAT],sensors_data[TEMPERATURE]);
snprintf (line_down, 16, "HUM:%02d CO2:%02d", sensors_data[HUMIDITY], sensors_data[CO2]); snprintf (line_down, 16, "HUM:%02d CO2:%02d", sensors_data[HUMIDITY], sensors_data[CO2]);
_lcd->clear (); _lcd->clear ();
@ -179,6 +181,7 @@ StateHandler::stateSensors (const Event &event)
_lcd->print (line_up); _lcd->print (line_up);
_lcd->setCursor (0, 1); _lcd->setCursor (0, 1);
_lcd->print (line_down); _lcd->print (line_down);
#endif
SetState (current_mode? &StateHandler::stateAuto : &StateHandler::stateManual); SetState (current_mode? &StateHandler::stateAuto : &StateHandler::stateManual);
break; break;
} }
@ -215,7 +218,7 @@ StateHandler::save (int eventValue, size_t mode)
if(!eventValue) { if(!eventValue) {
/* Small delay for modbus communications with pressure sensor */ /* Small delay for modbus communications with pressure sensor */
int i = 0; int i = 0;
while(i<7200) i++; while(i<720) i++;
i = 0; i = 0;
eventValue = pressure->getPressure(); eventValue = pressure->getPressure();
} }
@ -230,7 +233,7 @@ StateHandler::save (int eventValue, size_t mode)
} }
void StateHandler::pid () { void StateHandler::pid () {
float kP = 0.001, kI = 0.001, kD = 0.001; float kP = 0.1, kI = 0.01, kD = 0.01;
int error = 0, last_error = 0, derivative = 0; int error = 0, last_error = 0, derivative = 0;
error = saved_set_value[AUTO] - saved_curr_value[AUTO]; error = saved_set_value[AUTO] - saved_curr_value[AUTO];
last_error = error; last_error = error;