que hago mal con el dht11?

Buenos dias, estoy haciendo pruebas con un dht11 conectado a un arduino1 a traves de protoboard; algo muy sencillo.
El codigo es este:

#include <DHT.h> // libreria del dht11
#define DHTPIN 8 //pin de señal
#define DHTTYPE DHT11 

DHT dht(DHTPIN, DHTTYPE);

void setup() {
Serial.begin(9600);  // ira a 9600 baudios, y transmite datos a la pantalla ordenador
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature(); // por que esta en naranja y no en negro?

Serial.println("Temperatura ");
       Serial.println(t);
       Serial.println ("Humedad");
       Serial.println (h);

delay(9000);  //tiempo de refresco de mediciones

cuando le doy al monitor me sale esto:

Temperatura
0.00
Humedad
nan

Mido entre positivo y masa y hay 5vDC
Mido entre señal y masa y oscila entre 4,1 y 4,3 vDc, supongo que son las variaciones de señal
La libreria se llama DHT, y lleva los archivos DHT.cpp y DHT.h

Por favor, alguien me puede decir que hago mal??
Muchas gracias

Saludos
Te asegúrate de colocar una resistencia de 4.7k entre VCC y data? Si la colocaste entonces asegúrate de que haya buen contacto en los pines.

Tengo el dht11 montado sobre placa, solo tiene 3 pines y la resistencia va incorporada a la placa

Yo monte el DHT11 y lo probe con tu codigo y funciono correctamente:

Temperatura 

31.00

Humedad

36.00

Temperatura 

31.00

Humedad

36.00

Temperatura 

31.00

Humedad

36.00

Temperatura 

31.00

Humedad

36.00

Temperatura 

31.00

Humedad

37.00

Yo tambien tengo uno funcionando con ese mismo codigo y la libreria de Adafruit,solo que el mio es un dht22 o AM2302 ,pero es lo mismo solo hay que cambiar el DHTTYPE por DHT22

Pregunto: sin ánimo de ofender. Es un tema para Proyectos o es un problema de software o hardware? En todo caso este no es el subforo apropiado.

Ahora buscando la solución:
agrega esto

if (isnan(t) || isnan(h)) {
  Serial.println("Failed to read from DHT");
}

pero supongo que no te mostrará nada.
Luce como que tu sensor esta dañado o no esta recibiendo correctamente la petición de datos.

Corre por favor este sketch

#include "DHT.h"
DHT dht;
void setup()
{
Serial.begin(9600);
Serial.println();
Serial.println("Status\tHumedad (%)\tTemperatura (C)\t(F)");
dht.setup(2); // data pin 2
}
void loop()
{
delay(dht.getMinimumSamplingPeriod());
float humidity = dht.getHumidity();
float temperature = dht.getTemperature();
Serial.print(dht.getStatusString());
Serial.print("\t");
Serial.print(humidity, 1);
Serial.print("\t\t");
Serial.print(temperature, 1);
Serial.print("\t\t");
Serial.println(dht.toFahrenheit(temperature), 1);
}

Luego postea el resultado.

Buenas tardes
Ante todo disculpas por tardar en contestar, pero estaba de viaje

Imposible compilar tu sketch, surbyte. Me da error en varias lineas, aunque corrija por ejemplo:

"DHT.h" y lo cambie por <DHT.h> No compila

No tengo otro dht11 para saber si es el sensor.

Y si, es un proyecto, consiste en crear un grupo de sensores de temperatura , presion y humedad relativa, para hacer un barografo y con los resultados y temperaturas poder predecir niebla y otros fenomenos en el mar. Eso seria relativamente sencillo. La idea es incorporarlo como plugin a un programa de navegacion llamado OpenCpn

De todas formas hasta hace dos semanas ni siquiera habia oido hablar de Arduino, he empezado a estudiar. Muchas gracias por vuestra ayuda

Un saludo

asunto resuelto:

era un pin con falsa conexion

gracias a todos