#define setMode A0
#define setTemp A1
#define currentTemp A2
uint32_t nextEvent=0;
uint16_t set_Mode, set_Temp, celsius;
uint8_t eco_on = false;
const String mode_Name[] = {"OFF", "MAN", "ECO"};
const float BETA = 3950; // should match the Beta Coefficient of the thermistor
void setup() {
// put your setup code here, to run once:
Serial.begin(19200);
}
void loop() {
// put your main code here, to run repeatedly:
if (millis()-nextEvent > 11750) {
set_Mode = map(analogRead(setMode),0,1023,0,3); // operation mode, one of: OFF, MAN(UAL), ECO
set_Temp = map(analogRead(setTemp),0,1023,160,260);
celsius = uint16_t((1 / (log(1 / (1023. / analogRead(currentTemp) - 1)) / BETA + 1.0 / 298.15) - 273.15)*10);
switch (set_Mode) {
case 0: // OFF, ignore temperature setpoint, use 10 °C
set_Temp = 100;
break;
case 1: // MAN(UAL), uses the set_Temp value
break;
case 2: // ECO
// drop through
default:
set_Temp = 170;
if (eco_on) {
set_Temp = 190;
}
break;
}
Serial.print("\nTemp setpoint ");
Serial.print(set_Temp);
Serial.print(" °C");
Serial.print("\nMode ");
Serial.print(mode_Name[set_Mode]);
Serial.print("\nCurrent temp ");
Serial.print(celsius,1);
Serial.print(" °C");
controller();
nextEvent = millis();
}
}
void controller() {
}