да нет там никаких глюков
больше полугода работает на действующей банке
читаем код
// Управление нагревом и охлаждением ----------------------------------------------
if(cur_temp < (float)aquaT){
digitalWrite(EXT_HEATER_PIN, HIGH); // включает нагреватель
}else
digitalWrite(EXT_HEATER_PIN, LOW); // выключает нагреватель
if (CoolingEnabled) {
if(cur_temp > ((float)aquaT+0.1)){ // Разрешено ли охлаждение куллером
int coll_cur = minCool+(((float)(maxCool - minCool))/100)*(((float)(cur_temp-aquaT))/0.5)*100;
if (coll_cur > maxCool) { coll_cur = maxCool;}
analogWrite(EXT_COOLING_PIN, coll_cur); // включает куллер
}else{
analogWrite(EXT_COOLING_PIN, minCool); // включаем режим проветривания
}
}else{
if (air||light1){
analogWrite(EXT_COOLING_PIN, minCool); // включаем режим проветривания
}else{
digitalWrite(EXT_COOLING_PIN, LOW); // выключает куллер
}
}
}
одна особенность если даже в "период сна" включается свет или компрессор
тогда принудительно включаю куллер - для того, чтоб под крышкой не скапливался конденсан или не перегревалась лампа.
гистерезис вниз = 0, вверх 0,1
в пределах 0,5 градусов обороты куллера плавно меняются от минимума до максимума
Все работает в железе.