problema con la lectura de DHT11

Buenas, como digo tengo un problema con las lecturas del sensor. tengo hecho un control de un terrario en el cual controlo la humedad y la temperatura del mismo pero resulta que las lecturas de humedad no son correctas. He hecho la prueba con dos higrometros diferentes y en los dos casos el DHT11 da un valor 30% mas bajo que los higrostatos. la verdad es que no consigo saber de donde viene este fallo y me hace falta un poco de ayuda. dejo el codigo por si alguien encuentra el error, nose si puede ser error de hardware ya que la temperatura es correcta. Gracias

#include <LiquidCrystal.h>
#include <Wire.h>
#include “RTClib.h”
#include “DHT.h”
#define DHTPIN 15

#define DHTTYPE DHT11 // DHT 11
// conexion del sensor
// Conectar el pin 1 (a la izquierda) del sensor a +5 V
// Conecte el pin 2 del sensor a lo que su DHTPIN es
// Conecte pin 4 (a la derecha) del sensor a TIERRA
// Conecte una resistencia de 10K entre el pin 2 (datos) al pin 1 (alimentación) del sensor

DHT dht(DHTPIN, DHTTYPE);

// Connecsión del LCD:
// rs (LCD pin 4) to Arduino pin 12
// rw (LCD pin 5) to Arduino pin 11
// enable (LCD pin 6) to Arduino pin 10
// LCD pin 15 to Arduino pin 13
// LCD pins d4, d5, d6, d7 to Arduino pins 5, 4, 3, 2
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

// Conexión del RTC:
// Pin Sda al pin A4 del arduino
// Pin Scl al pin A5 del arduino
// También como en cualquier módulo, se deben conectar VCC y GND.
RTC_DS1307 RTC;

int backLight = 13; // pin 13 va a controlar la luz de fondo

void setup()
{
Serial.begin(9600);
Wire.begin();
RTC.begin();
dht.begin();

pinMode(backLight, OUTPUT);
digitalWrite(backLight, HIGH); // a su vez luz de fondo. Reemplace ‘HIGH’ con ‘BAJA’ para apagarlo.
lcd.begin(16,2); // columnas, filas. 16,2 utilizar para un LCD 16x2, etc
//lcd.clear(); // comenzar con una pantalla en blanco

// pines para activar las colas de energía
pinMode(6, OUTPUT); // humidificador
pinMode(7, OUTPUT); // calentador
pinMode(8, OUTPUT); // ventilador
pinMode(9, OUTPUT); // luces
}

void loop()
{
// leer la humedad y de la temperatura
float h = dht.readHumidity();
float t = dht.readTemperature();

//establecer el cursor (x, y) a partir de 0

// imprimir los datos de temperatura
lcd.setCursor(0,1);
lcd.print(“T:”);
lcd.print(t);
lcd.print("");

// imprimir los datos de humedad
lcd.setCursor(8, 1);
lcd.print(“H:”);
lcd.print(h);
lcd.print("%");

DateTime now = RTC.now();

Serial.print(now.year(), DEC);
Serial.print(’/’);
Serial.print(now.month(), DEC);
Serial.print(’/’);
Serial.print(now.day(), DEC);
Serial.print(’ ‘);
Serial.print(now.hour(), DEC);
Serial.print(’:’);
Serial.print(now.minute(), DEC);
Serial.print(’:’);
Serial.print(now.second(), DEC);
Serial.println();
delay(1000); // La información se actualiza cada 1 seg.

lcd.setCursor(0,0);
if(now.day() < 10)
{
lcd.print(“0”);
}
lcd.print(now.day(), DEC);
lcd.print(’/’);
if(now.month() < 10)
{
lcd.print(“0”);
}
lcd.print(now.month(), DEC);
lcd.print(’/’);
lcd.print(now.year(), DEC);
lcd.setCursor(11,0);
if(now.hour() < 10)
{
lcd.print(“0”);
}
lcd.print(now.hour(), DEC);
lcd.print(’:’);
if(now.minute() < 10)
{
lcd.print(“0”);
}
lcd.print(now.minute(), DEC);
lcd.print(’:’);
if(now.second() < 10)
{
lcd.print(“0”);
}

// gestión de la temperatura a través de la cola de potencia
// temperatura es de 24 - 26 en C o xx a xx en F

// HUMIDIFICADOR
if(h >= 85) {
digitalWrite(6, LOW); // humidificador off
}
if(h < 70) {
digitalWrite(6, HIGH); // humidificador on

// CALENTADOR
if(t >= 26) {
digitalWrite(7, LOW); // calentador off
}
if(t < 24) {
digitalWrite(7, HIGH); // calentador on
}

// VENTILADOR
if(t >= 26) {
digitalWrite(8, HIGH); // ventilador on
}
if(t < 24) {
digitalWrite(8, LOW); // ventilador off
}

// LUCES
// La luz se enciende de 10 a 22
if ( hour >= 10 && hour <= 22 ) {
digitalWrite(9, HIGH); // luces on
} else {
digitalWrite(9, LOW);// luces off
}

// enviar los datos al ordenador para su carga desde Internet
Serial.println(t);
Serial.println(h);
}

el dht11 no tiene una gran precisión y como que con el tiempo va a peor. tengo uno hace 2 años midiendo temperatura y ambiente. Actualmente solo me marca 20% de humedad, incluso después de llover durante días.

Gracias por la informacion pacogarcia, comprare un dht22 que es algo mas preciso y hare la prueba. Un saludo :wink: