Pages: [1] 2   Go Down
Author Topic: DHT22 Quale codice ?  (Read 1475 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 2
Posts: 66
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve a tutti,
dopo aver testato per un po' il DHT11, ho acquistato la versione DHT22,  che dovrebbe essere più precisa. Purtroppo, cercando su Internet non sono riuscito a trovare un codice che funzionasse e sopratutto, se è necessaria la presenza di una resistenza da 10K. Qualcuno ha avuto già esperienza con questo sensore ?
Logged

Offline Offline
God Member
*****
Karma: 2
Posts: 536
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao... mi sembra strano che tu non abbia trovato niente... guarda su www.adafruit.com
comunque usi la stessa libreria del DHT11 e la resistenza in pull-up da 10k

Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21657
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Impossibile che tu non abbia trovato nulla...  smiley-wink
Logged


Bologna
Offline Offline
God Member
*****
Karma: 5
Posts: 502
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quasi sicuramente avrai usato la libreria di Lady Ada. commenta il define del  dht 11 e Decommenta  il define di dht22.  Altrimenti  segui i link degli altri arduinisti!  smiley-wink
Logged

Offline Offline
Jr. Member
**
Karma: 2
Posts: 66
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie per le risposte. Il codice riportato, è lo stesso che ho utilizzato ieri sera e che non funziona. Eccolo:

Code:
// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain

#include "DHT.h"

#define DHTPIN 2     // what pin we're connected to

// Uncomment whatever type you're using!
//#define DHTTYPE DHT11   // DHT 11
#define DHTTYPE DHT22   // DHT 22  (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

// Connect pin 1 (on the left) of the sensor to +5V
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 4 (on the right) of the sensor to GROUND
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  Serial.println("DHT22 test!");
 
  dht.begin();
}

void loop() {
  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  // check if returns are valid, if they are NaN (not a number) then something went wrong!
  if (isnan(t) || isnan(h)) {
    Serial.println("Failed to read from DHT");
  } else {
    Serial.print("Humidity: ");
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: ");
    Serial.print(t);
    Serial.println(" *C");
  }
}

Come output ho 0°, mentre se utilizzo il DHT11, mi legge una temperatura, accettabile, anche se è sbagliata di qualche grado. Ho collegato il tutto correttamente (http://www.flickr.com/photos/89264743@N04/8146823768/). Inoltre, con il tester, ho misurato e c'è tensione tra il data il ground, quindi il sensore funziona.
« Last Edit: March 14, 2013, 06:52:36 am by jackbell16 » Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 104
Posts: 6617
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

E' sbagliato lo schema.
La resistenza non è in serie ma è una pull-up.

Questo è giusto.


In pratica la resistenza va a ponte tra il piedino 5V e data.
« Last Edit: March 14, 2013, 11:05:13 am by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Tuscany
Offline Offline
Edison Member
*
Karma: 37
Posts: 1488
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
E' sbagliato lo schema.
La resistenza non è in serie ma è una pull-up.

mi consolo... non sono l'unico che invecchia...

Logged

Offline Offline
Jr. Member
**
Karma: 2
Posts: 66
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

E' sbagliato lo schema.
La resistenza non è in serie ma è una pull-up.

Questo è giusto.


In pratica la resistenza va a ponte tra il piedino 5V e data.

Grazie per la risposta. Ho provato a mettere la resistenza in pull-up (in pratica è in parallelo al PIN1 e PIN2). Però il problema rimane e sopratutto non riesco a capire come possa segnare 0, se c'è una tensione.
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 104
Posts: 6617
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il sensore è digitale non analogico e usa il protocollo 1-wire.
Dovresti usare un analizzatore di stati logici per verificare il passaggio di dati dal sensore all'Arduino, con un semplice tester non puoi.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Jr. Member
**
Karma: 2
Posts: 66
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il sensore è digitale non analogico e usa il protocollo 1-wire.
Dovresti usare un analizzatore di stati logici per verificare il passaggio di dati dal sensore all'Arduino, con un semplice tester non puoi.


Grazie per l'osservazione. Vorrei essere sicuro sul corretto posizionamento della resistenza. é corretto mettere la resistenza da 10K in parallelo con il sensore che a sua volta è ancora in parallelo tra il 5V e il cavo che va alla porta A0 ?
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 104
Posts: 6617
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

La resistenza va messa come la figura.
Non ho capito cosa intendi per parallelo.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Jr. Member
**
Karma: 2
Posts: 66
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

La resistenza va messa come la figura.
Non ho capito cosa intendi per parallelo.

Grazie come sempre per la risposta. MI puoi confermare che è corretta la posizione ?

https://www.dropbox.com/s/j4su3d57qru16rd/Foto%2016-03-13%2014%2012%2049.jpg
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 104
Posts: 6617
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si, è corretta sia la posizione che il valore.  smiley-wink
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Jr. Member
**
Karma: 2
Posts: 66
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si, è corretta sia la posizione che il valore.  smiley-wink

Non ero sicuro del valore della resistenza, ma il tester me l'ha confermato e ho messo quella. Comunque mi da errore di lettura e poi mi scrive umidità zero, come la temperatura. Mentre se collego il DHT11 con lo stesso sorgente, per provare, mi da dei valori. Secondo te a cosa è dovuto ? Può essere difettoso il sensore, oppure può essere qualcos'altro ?
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 104
Posts: 6617
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quindi hai tutti e due i sensori?
Ricordati di cambiare il #define per l'uno o per l'altro.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Pages: [1] 2   Go Up
Jump to: