Go Down

Topic: DHT11 Auflösung 0.1 (Read 2 times) previous topic - next topic

jurs

#5
Mar 05, 2013, 12:24 pm Last Edit: Mar 05, 2013, 12:48 pm by jurs Reason: 1

The English version gives a resolution of 0.1 degrees C.

http://www.dfrobot.com/image/data/DFR0067/DFR0067_DS_10_en.pdf


Original-Datenblatt siehe hier:
http://www.adafruit.com/datasheets/DHT11-chinese.pdf

Englische Datenblätter dieses chinesischen Sensors gibt es nicht, aber Hobbyisten mit Google-Translate haben sich trotzdem dran versucht. Leider wird da wohl irgendjemand beim inoffiziellen Übersetzen von Chinesisch nach Englisch einen kleinen Fehler gemacht haben.

Im offiziellen Datenblatt steht eindeutig drin:
??? 1°C
Und das übersetzt Google-Translate eindeutig zu "Auflösung 1° C"

Der Sensor mit 0,1°C Auflösung ist wie schon oben geschrieben der mit der Bezeichnung: DHT21 oder DHT22.

Und auch die haben nur eine absolute Genauigkeit von +/-0,5°C.

uwefed


Quote

The English version gives a resolution of 0.1 degrees C.

http://www.dfrobot.com/image/data/DFR0067/DFR0067_DS_10_en.pdf

Mark


ich habe noch ein LM335 (mit 2150 Ohm) und der zeigt mir diese Werte:
18.57 C  
18.57 C  
18.57 C  
18.57 C  
18.08 C  
18.57 C  
18.57 C  
19.06 C  


Ist es normal dass die Temperatur so schwankt? Eher nicht, oder? Gibts da eine Lösung dafür, nicht dass die Heizung angehen muss und nach 2 sec die Kühlung.


Diese Werte ergeben sich wahrscheinlich durch die Meßungenauigkeit von 1 Digit des A/D Wandlers.

Auflösung und Genauigkeit sind 2 verschiedene Sachen und haben normalerweise ca die gleiche Größe. Auflösung ist die Stufung zwischen 2 benachbarten meßwerten. Genauigkeit ist der Unterschied zwischen gemessener und wirklicher Temperatur. Beide haben ca die gleiche Größe da es sinnlos ist, supergenau zu messen aber grob anzuzeigen bzw umgekehrt ungenu zu messen und Dezimalstellen zu "erfinden".

Um eine Genauigkeit von 0,1°C  bei 30°-40°C braucht es eine Genauigkeit der Schaltung von unter 1%. Da werden Widerstände teuer. Auch Temperatursensoren mit dieser Genauigkeit sind teuer.

Grüße Uwe

skorpi08

Wenn ich schon ein teuren kaufen muss dann lieber den DHT22 oder ist der DHT21 besser?
Nicht Mensch, nicht Tier: Programmierer halt...

guntherb

#8
Mar 05, 2013, 12:49 pm Last Edit: Mar 05, 2013, 12:57 pm by guntherb Reason: 1
Stimmt, in dem von dir verlinkten Datenblatt ist die Auflösung mit 0,1°C angegeben. Was mich allerdings misstrauisch macht, ist, dass dein Datenblatt keinerlei Firmenaufdruck, Hersteller adresse oder sonst etwas enthält, was schliessen läßt, wer dieses "Datenblatt" geschrieben hat.

Das hier gibt 1°C Auflösung an, ebenso wie das hier.

Zu deinem Temperaturproblem:
Ja, Temperaturen in Innenräumen schwanken stark. Bei einem schnellen Sensor reicht es aus, wenn jemand durchs Zimmer geht, dabei die Luftschichten durcheinanderwirbelt, um Schwankungen von 2°C hervorzurufen.

Bei deiner Messung allerdings scheint mir das eher Signalrauschen zu sein.
die Sprünge von 0,49°V entsprechen genau der AD-Auflösung von einem Bit. Die letzten zwei Bits eines AD sind eigentlich nie stabil.

Aber du brauchst eigentlich was ganz anderes:
Temperaturen sind vor allem eines: Träge.
Wenn du also Temperaturen regeln willst, dann mußt du für ein geglättetes Signal sorgen, das nicht jede kleine Schwankung der Luft registriert.
Das kannst du an 3 Stellen machen:
a) an der Quelle: Den Sensor an eine thermisch träge Masse anbinden, z.B. einen Alu-Klotz, das filtert Strömunssprünge raus.
b) in der Hardware: ein Tiefpass vor dem AD reduziert Signalrauschen
c) in der Software: nicht jeden Wert verarbeiten, sondern digital Filtern. Der einfachste aller digitalen Tiefpässe ist der
  gleitenden Mittelwert: Temp = (Temp * (FilterFaktor -1) + AktuellerMesswert) / FilterFaktor; Mit einem Filterfaktor von 10 geht jeder neue Messwert zu einem Zehntel in den Wert mit ein, damit werden Störungen egalisiert.

Wenn du dann ein langsames, sauberes Signal hast (das dir über die digtale Filterung sogar eine höhere Auflösung erzeugt), kannst du dann darauf regeln.

Und noch ein Satz zur Genauigkeit: Die Angabe +/-2°C bedeutet ja nichts anderes als das die einzelnen Exemplare dieses Typs um diesen Wert differieren können. Das kriegst du aber über einen einfachen Abgleich weg. Nimm einen Topf mit Wasser, dessen Temperatur du mit einem genauen Termometer misst, (bei 35°C-  40°C bieten sich Fieberthermometer an!) und mach einen Abgleich in der Software.

Wenn du aber wirklich auf den Nachkommastellen bestehst, probiers mal mit analogen Sensoren. Mit einem einfachen NTC und passendem Vorwiderstand kommst auf deine 0,1°C Auflösung.

Oder du nimmst einen DS18B20, der hat 0,5°C Genauigkeit und bis zu 0.0625°C Aullösung.

Wie genau muß denn die Temperatur geregelt werden?

Grüße

Gunther


edit:

Wenn ich schon ein teuren kaufen muss dann lieber den DHT22 oder ist der DHT21 besser?
So wie ich es sehe ist der Unterschied das Gehäuse. Der DHT21 mit Anschlusskabel, der DHT22 für Printmontage.
Grüße
Gunther

jurs


Wenn ich schon ein teuren kaufen muss dann lieber den DHT22 oder ist der DHT21 besser?


Nö, meines Wissens nach unterscheiden sich DHT21 und DHT22 nur dadurch, dass der DHT22 mit Anschlüssen zur Leiterplattenmontage im 2,54mm Rasterplattenmaß vorgesehen ist, und der DHT21 kommt mit einem etwas größeren Plastikgehäuse fertig konfektionierten Leitungen von einigen Zentimetern Länge vorverdrahtet, so daß man den Sensor bequem etwas abgesetzt vom Gehäuse anschließen kann. Ganz sicher bin ich mir aber nicht, ggf. mal ins Datenblatt sehen (möglichst ein fehlerfreies, wenn es nicht das Original ist), oder in die Library sehen, ob es einen Unterschied gibt.

Go Up