pequeño error que me trae loco

Buenas a todos,

Estoy intentando hacer funcionar un pequeño programa para activar una bomba de agua y realizar un riego pero me aparecio algun tipo de error que no logro encontrar y no se activa la salida digital que hace funcionar al rele.

En concreto cuando intento una condicion tipo if comparando una variable con un valor.

Aqui dejo el codigo:

#include <LCD5110_Graph.h>
#include <DHT.h>    // importa la Librerias DHT
#include <DHT_U.h>

// Configuracion de la pantalla
  LCD5110 myGLCD(3,4,5,7,6);
  
  extern unsigned char SmallFont[];
  extern unsigned char TinyFont[];
  
  int contrast = 60;
//Configuracion del DHT22  
  int SENSOR = 2;     // pin de DHT22 
  DHT dht(SENSOR, DHT22);                               
  int rele = 11;                                                                                                                                    ;
 
void setup() {
   Serial.begin(9600);
   myGLCD.InitLCD(contrast);
   dht.begin();      // inicializacion de sensor
   pinMode(rele, OUTPUT);
}
 
void loop() 
{
  float t = dht.readTemperature();  // valor de temperatura
  float h = dht.readHumidity();   // valor de humedad
  myGLCD.setFont(SmallFont);      //Tamaño de la letra
  myGLCD.print("Temperatura:",LEFT,0);
  myGLCD.printNumI(t,RIGHT,0);
  myGLCD.print("Humedad:",LEFT,9);
  myGLCD.printNumI(h,RIGHT,9);
  if (h < 80)
    { 
    digitalWrite(rele, HIGH);
    }
  myGLCD.update();
  delay(1000);
  myGLCD.clrScr();
  delay(1000);
  
   
   }

Estoy aprendiendo a programar con lo que por esta razon os pido ayuda.

Un saludo y mil gracias

la programación por lo que se ve esta bien, tendrías que ver el rele si lo conectaste bien. proba el rele mandandole 5v directo

const int rele=11;

void setup(){
pinMode(rele,OUTPUT);
}

void loop(){
digitalWrite(rele,HIGH);
}

si no te anda asi es porque conectaste mal el rele

gracias por la respuesta dani :wink: , el rele esta bien conectado. Si conecto la entrada directamente a 5v se activa.

Si tomo medidas en la salida del arduino con un polimetro, fuerzo al sensor a que cambie de valor y la salida no cambia de valor ( midiendo con el polimetro) por lo que pienso que algo en el codigo debe de estar mal.

La gente olvida o no sabe que los reles si se conecta con la entrada de control directo al pin de salida como en tu casa trabaja con logica inversa.

Primero si lo que quieres es que el rele se active no pongas HIGH sino LOW (o sea invertido)
Ademas a tu condición le falta algo que lo ponga en la otra condición.
Prueba asi.

  if (h < 80)  { 
    digitalWrite(rele, LOW);
  } else 
     digitalWrite(rele, HIGH);

Gracias surbyte he modificado el código y faltaba ese "else" para funcionar bien. No sabia que la placa de relés funcionaba con lógica inversa, otro detalle mas para recordar :wink:

Mil gracias