unsigned long vorigeControleTijd = 0;
const unsigned long controleInterval = 5000; // Controle elke 5 seconden
const int pinKoelkast = A0;
const int pinDiepvries = A1;
// Lees temperatuur met eenvoudige lineaire benadering zonder map()
float leesTemperatuurNTC(int analogPin) {
int waarde = analogRead(analogPin);
// Analoge waarde 0-1023 omzetten naar temperatuur tussen -30°C en 50°C
float temperatuur = -30.0 + (waarde / 1023.0) * 80.0;
return temperatuur;
}
// Functie om temperaturen te controleren (pass by reference)
void controleerTemperaturen(float &koelkastTemp, float &diepvriesTemp) {
// Controleer koelkast (tussen 2°C en 5°C)
if (koelkastTemp < 2.0 || koelkastTemp > 5.0) {
Serial.print("Koelkast temperatuur fout: ");
Serial.print(koelkastTemp);
Serial.println("°C -> aanpassen naar 4.0°C");
koelkastTemp = 4.0;
}
// Controleer diepvries (tussen -25°C en -18°C)
if (diepvriesTemp < -25.0 || diepvriesTemp > -18.0) {
Serial.print("Diepvries temperatuur fout: ");
Serial.print(diepvriesTemp);
Serial.println("°C -> aanpassen naar -20.0°C");
diepvriesTemp = -20.0;
}
}
void setup() {
Serial.begin(9600);
}
void loop() {
unsigned long huidigeTijd = millis();
if (huidigeTijd - vorigeControleTijd >= controleInterval) {
vorigeControleTijd = huidigeTijd;
float koelkastTemp = leesTemperatuurNTC(pinKoelkast);
float diepvriesTemp = leesTemperatuurNTC(pinDiepvries);
Serial.println("\n--- Nieuwe controle ---");
Serial.print("Gelezen koelkasttemp: ");
Serial.print(koelkastTemp); Serial.println("°C");
Serial.print("Gelezen diepvrieestemp: ");
Serial.print(diepvriesTemp); Serial.println("°C");
controleerTemperaturen(koelkastTemp, diepvriesTemp);
Serial.println("Na controle:");
Serial.print("Koelkast: "); Serial.print(koelkastTemp); Serial.println("°C");
Serial.print("Diepvries: "); Serial.print(diepvriesTemp); Serial.println("°C");
}
}
Diepvries
Koelkast