Problema con codigo para Incubadora

Hola, hace una hora termine la Incubadora casera que realize con arduino.
Bien la cosa es hice el codigo y lo probe antes de armarlo.

 #include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "DHT.h" //cargamos la librería DHT
#define DHTPIN 2 //Seleccionamos el pin en el que se conectará el sensor
#define DHTTYPE DHT22 //Se selecciona el DHT22(hay otros DHT)
DHT dht(DHTPIN, DHTTYPE); //Se inicia una variable que será usada por Arduino para comunicarse con el sensor
LiquidCrystal_I2C lcd(0x3F,16,2); //Se declara el tipo de LCD 

void setup() {
  pinMode(13,OUTPUT); //Se declara PIN D13 como salida
  lcd.backlight(); // Se enciende el backlight de LCD
  dht.begin(); //Se inicia el sensor
  lcd.init();  //Se inicia el LCD
  lcd.print("Incubadora 1.0V ");
  delay(2000);
  lcd.clear();
  lcd.print("Obteniendo datos...");
  delay(2000);
  lcd.clear();
  
}
void loop() {
  float h = dht.readHumidity(); //Se lee la humedad
  float t = dht.readTemperature(); //Se lee la temperatura
  //Se imprimen las variables
  lcd.print("Humedad: "); //Se imprime la humedad
  lcd.print(h);
  lcd.setCursor(0,1);
  lcd.print("Temp: ");//Se imprime la temperatura
  lcd.print(t);
 
  
   if(t>38.50){                    //Si la temperatura (t) es menor que 38.50 se pone el PIN D13 en alto
    digitalWrite(13,1); 
   }
 
  
  delay(2000 ); //Se espera 2 segundos para seguir leyendo //datos
  lcd.clear();
 }

Bueno, use el DHT22 por su precisión + un modulo de 2 reles octoacoplados

El problema es cuando la temperatura llega a la temperatura deseada.
Cuando enciende todo funciona, si la temperatura es menor que 38.50 C el rele se exista hasta llegar a la temperatura, una ves que alcanza los 38.50 C el rele deja de estar excitado porque ya sobrepaso la temperatura, pero una ves que baja de los 38.50 C no se exista mas, o sea, aunque esta mas baja que 38.50 C no se activa.
Lo que hago es sacar la alimentación y volver a alimentar y ahí vuelve a funcionar hasta que la T llega a lo indicado, luego que baja un poco la T vuelve a pasar el problema

Me sabrían decir cual es el problema?
Gracias!

Y donde le dices que vuelva energizarse el relé?
Solo veo esto en tu código.

if(t>38.50){                    //Si la temperatura (t) es menor que 38.50 se pone el PIN D13 en alto
    digitalWrite(13,1); 
   }

Te falta algo opuesto

if(t<37.50){                
    digitalWrite(13,0); 
   }

Supongo que tienes un relé que trabaja invertido.

Hola, Gracias por responder, no seria lo mismo poner un "else"?
El rele trabaja normal, cuando pongo el pin 13 en 1 el rele se exita

No es lo mismo porque tu no quieres que se vuelve a accionar inmediatamente despues de abandonar 38.5 grados.
Normalmente se pone una histérisis para que el relé no esta activándose/desactivandose a toda velocidad.

Muchas Gracias, Ya anda! :smiley:
Voy a hacer unas pruebas y ver si nacen los pollitos
Muchas gracias por responder y por la solucion!

Yo te puse 37.50 pero dale un intervalo de 0.5 grados como para que ajuste entre una acción y otra y lograrás un control aceptable.