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 )
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 ?