Sensore DHT22, prima lettura sempre sbagliata - da un giorno all'altro !!

Ciao, ho da qualche giorno cmprato l'economico ma efficente sensore di temperatura e umidità DHT22 che tutti conoscerano ma per comodità lascio il link al datasheet.

Fino a ieri andava tutto bene, oggi dopo aver fatto alcune modifiche al codice (cose veramente stupide, tipo provare a fare un coneggo con la funzione milis, convrtire i valori ritornati in interi) la prima lettura è sempre completamente sbagliata ! (-99.50 °C e -99.50 % Rh :slight_smile: )
A dirla tutta non penso sia un errore del sensore, forse è il codice ? ma fino ieri funzionava bene anche usando una v. precedene!
Il problema si presenta al primo avvio della porta seriale, quando premo il tasto reset e quando ricarico il codice!
Inoltre, caricando l'sempio in libreria, l'errore non si presenta.
E' possibile perchè nel mio codice ometto un'eventuale gestion errori che nell'esempio c'è ?

#include <DHT22.h> //libreria componente
//#include <stdio.h> //non saprei cosa sarebbe

#define DHT22_Pin 7 //costante, sul pin 7, ci sarà il sensore

DHT22 Dht22(DHT22_Pin);

void setup() 
{
  //Uscita, in questo caso accendo un LED per simulazione una azione
  pinMode(12, OUTPUT); // Led rosso
  pinMode(10, OUTPUT); // Led giallo
  Serial.begin(9600);
  Serial.println("Lettura Temperatura e Umidita' tramite sensore DHT22");
  Serial.println(" ");
  Serial.println("Warm UP sensore ");
}
//Entro nel corpo del programma
void loop()
{
  float lettura;
  delay(5000); //Aspetto 5 secondi per "riscaldare" il sensore
  Serial.println(" ");
  Serial.println("Warm UP effettuato, richiedo dati ");
  lettura = Dht22.readData();
  Serial.println("Dati acquisiti:");
  Serial.print(Dht22.getTemperatureC()); //Scrivo la temperatura usando il metodo fornitomi dalla libreria
  Serial.print(" Gradi centigradi (C) con il ");
  Serial.print(Dht22.getHumidity()); //Faccio lo stesso con l'umidita
  Serial.print(" % di umidita' relativa (RH)");
  Serial.println(" ");
}

Ho tolto tutto quello che faceva ma l'errore rimane! Come mai ?

E' possibile perchè nel mio codice ometto un'eventuale gestion errori che nell'esempio c'è ?

C'è il controllo dell'errore apposta sul risutato di readData perchè più andare fuori sincrono, avere un errore sui dati per qualche interferenza, ecc...

grazie per la risposta, quello che vorrei capire, è cosa possa generare questo problema ?

Che versione delle libreria usi? Link?