Yo tengo esta parte de codigo para activar el compresor del aire acondicionado de un automovil cuando la temperatura del evaporador es superior a 15 °C y lo apaga cuando llega a una temperatura inferior a 3°C creo que es lo que quieres hacer lo explicare lo mejor posible lo que hace e intenta agregarlo a tu código modificando los nombres de acuerdo con lo que tengas y las salidas que tengas y la lógica que funcionen tus relés.
thresholdLowEvaporador = 3, // Umbral de temperatura Apagado (Embrague Magnetico)
thresholdHighEvaporador = 15; // Umbral de temperatura Encendido (Embrague Magnetico)
void controlAutomatico()
{
if (estadoActivacionAc == 1) // Variable que indica que se ha activado el aire acondicionado por el ususario
{
if (!estadoAcTemperatura && tempEvaporador > thresholdHighEvaporador) { // estadoACtemperatura significa que que si esta apagado y la temperatura es superior a la establecida cambie el estado de la variable a 1 para que no se vuelva a entrar en la condición y active el compresor, en tu caso el rele
estadoAcTemperatura = 1;
digitalWrite(cluchRelay, HIGH);
}
if (estadoAcTemperatura && tempEvaporador < thresholdLowEvaporador) { // estadoAcTemperatura en este caso como es 1 y la temperatura es inferior a la establecida en el umbral cambia de estado a 0 y desactiva el compresor, en tu caso el rele
estadoAcTemperatura = 0;
digitalWrite(cluchRelay, LOW);
}
}
else
{
digitalWrite(cluchRelay, LOW);
}
}
Espero que logres hacerlo funcionar por tu cuenta si no pregunta de nuevo por aquí, no dispongo de mucho tiempo por lo que no lo adapto a tu código.