Aiuto DHT11

Ciao, piacere Massimo.

Ho appena inizato a cimentarmi nel mondo di arduino. Ho preso uno starter kit e ho iniziato a giocare.

Ho collegato il sensore DHT11 con le relative librerie e tutto sembra funzionare.

Il problema è che la lettura impazzisce.... continua a saltare dalla lettura corretta a dei valori nettamente più bassi dell'errore del sensore... salta da umidtà 39 a 23 e temp da 26 a 20 e poi torna a quelli corretti....

Potrebbe essere un problema del sensore difettoso?

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento se non lo hai già fatto: Regolamento
Qui una serie di link utili, non inerenti al tuo problema:

Dal forum, visto che non siamo nella tua testa ne vediamo quello che stai facendo, con le poche informazioni che dai difficilmente troverai aiuto.

Se vuoi che qualcuno cerchi di aiutarti dovresti postare sia lo schema dei collegamenti che lo sketch ce usi per leggere i dati del sensore.

Ciao

Attilio

Grazie!!! domani vedrò di fare un post per la presentazione e di fornire uno schema dei collegamenti e lo sketch!!!

ok... posto lo schema (è il primo che faccio quindi sarà sicuramente orribile e in più non sapevo come collegare lcd!!!) Lcd è collegato tramite il PCF8574AT. Funziona tutto correttamente. però ogni tanto inizia a fare dele letture sistematiche errate del tipo: H%41 t°27 poi salta a H%27 t°23 poi ritorna al valore iniziale e continua a fare questo ciclo finchè non riavvio il programma.

#include <dht11.h>
dht11 DHT;
#define DHT11_PIN 8
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
 
void setup(){
  Serial.begin(9600);
  Serial.println("DHT TEST PROGRAM ");
  Serial.print("LIBRARY VERSION: ");
  Serial.println(DHT11LIB_VERSION);
  Serial.println();
  Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
pinMode(13,OUTPUT);
lcd.begin(16,2); 

}
 
void loop(){
  int chk;
  Serial.print("DHT11, \t");
  chk = DHT.read(DHT11_PIN);    // READ DATA
  switch (chk){
    case DHTLIB_OK:  
                Serial.print("OK,\t"); 
                break;
    case DHTLIB_ERROR_CHECKSUM: 
                Serial.print("Checksum error,\t"); 
                break;
    case DHTLIB_ERROR_TIMEOUT: 
                Serial.print("Time out error,\t"); 
                break;
    default: 
                Serial.print("Unknown error,\t"); 
                break;
  }
 // DISPLAT DATA
  Serial.print(DHT.humidity,1);
  Serial.print(",\t");
  Serial.println(DHT.temperature,1);
 
  delay(1000);
  lcd.setCursor(2,0); //Start at character 4 on line 0
  lcd.print(DHT.humidity);
  lcd.setCursor(2,1);
  lcd.print(DHT.temperature);
  
  if (DHT.humidity>=43&&DHT.humidity<=45){
    digitalWrite(13,HIGH);
    }
    else{
      digitalWrite(13,LOW);
      }
}

Hai sbagliato a collegare il sensore.
Il piedino che hai collegato a GND va lasciato libero e quello che hai lasciato libero va collegato a GND.

Ti consiglio di evitare di usare un solo colore per i collegamenti, fai solo confusione, usa il rosso per VCC+, il nero per GND (rispetta le convenzioni)

QUI il datasheet del DHT11.

Ciao

Attilio

Attilio, grazie della risposta... ho schematizzato con il sensore che c'era dentro al sw. Il mio sensore ha 3 piedini xchè è montato su una basetta. Allego foto!!! cmq stamattina non ha mai fatto lo scherzo di saltare i valori

Potrebbe essere anche un falso contatto sui collegamenti, con i cavetti volanti sulle breadboard e sui pin di arduino può succedere.

Mi permetto di darti un altro consiglio: quando scrivi sul forum evita le abbreviazioni da sms o da chat :D, tipo "xchè" al posto di perchè o "cmq" al posto di comunque :wink:

Ciao

Attilio

Ok Grazie delle dritte!!!! Provo a ricollegare il tutto e vedo se il problema si ripete!!!