Forum: Mikrocontroller und Digitale Elektronik SHT71 misst falsche Werte


von R.M. (Gast)


Lesenswert?

Hallo!

Mein SHT71-Sensor misst einfach nicht korrekte Werte. Ich habe mir jetzt 
einfach einmal die Temperatur ausgeben lassen, da diese leicht zu 
vergleichen geht, aber bei Zimmertemperatur (etwa 23 Grad) komme ich mit 
den Werten des SHT71 auf etwa 37°C.

Den Heater habe ich nicht eingeschalten, ich messe nur auf Befehl, also 
gehe ich auch nicht von Eigenerwärmung aus, es sei denn ich warte 
während der Messung selbst zu lange.

Was kann hier zu solch gravierenden Fehlmessungen führen?


Mit freundlichen Grüßen

R. M.

von ... (Gast)


Lesenswert?

Das kann eigentlich nur an der Hard- oder Software liegen.

von R.M. (Gast)


Lesenswert?

Hardwaretechnisch habe ich ihn gemäß Datenblatt angeschlossen. Also auf 
Ground, VDD eine Clock-Leitung und eine Datenleitung sowie ein 
10k-Widerstand als Pull-Up-Widerstand zwischen DATA und VDD.

Was kann ich denn dann softwaretechnisch falsch gemacht haben?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

R.M. schrieb:
> Was kann hier zu solch gravierenden Fehlmessungen führen?
Hast du mal die Temperatur des SHT71 gemessen?
Reagiert der SHT71 auf Erwärmung und Abkühlung?

R.M. schrieb:
> Was kann ich denn dann softwaretechnisch falsch gemacht haben?
Den falschen Umrechnungsfaktor verwendet?

Kurz: du hast weder deine Hardware noch deine Software gepostet und 
möchtest, dass dir einer sagt, wo dein Fehler sein könnte?
Schon mal was von "Kristallkugel" gehört?

von Martin M. (capiman)


Lesenswert?

Ich habe den SHT71 noch nicht benutzt, aber den SHT21.
Bei diesem waren diverse Umrechnereien nötig, um vom
Messwert auf die echte Temperatur und Feuchtigkeit zu kommen.

Hast Du mal überprüft, ob die Temperatur passt, wenn Du die Messwerte
vom SHT71 nimmst und per Hand (Taschenrechner, C-Programm) umrechnest?

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

R.M. schrieb:
> Zimmertemperatur (etwa 23 Grad) komme ich mit
> den Werten des SHT71 auf etwa 37°C.

° Fahrenheit ?

von pompete (Gast)


Lesenswert?

Joachim Drechsel schrieb:
> R.M. schrieb:
>> Zimmertemperatur (etwa 23 Grad) komme ich mit
>> den Werten des SHT71 auf etwa 37°C.
>
> ° Fahrenheit ?

...ja,das war auch mein gedanke gleich bei den ersten paar gelesenen 
zeilen ;-)
wie joachim schon richtig schrieb, werden es warscheinlich 73 fahrenheit 
und
nicht 37 grad celsius sein, denn diese 73 fahrenheit ergeben so ziemlich 
genau 23 grad celsius...

von pompete (Gast)


Lesenswert?

...schau noch mal über deine routine zum auslesen, evtl. hast du 
highbyte und lowbyte beim verkehrt herum ausgelesen....

von R.M. (Gast)


Lesenswert?

Es ist so, dass man beim SHT71 tatsächlich die Werte, die einem der 
Sensor liefert, mittels einer Formel ausrechnen muss. Und erst hier 
entscheidet sich, ob das Endergebnis in Celsius oder Fahrenheit 
angezeigt wird (andere Parameter). Daran liegt es also (hoffentlich) 
nicht.

Da ich eine 12-bit-Auslese mache (vorher im SREG des Sensors umgestellt) 
ist es auch nicht möglich, dass ich die Bytes vertauscht habe, da ein 
Byte (das High Byte) im ersten Nibble den Wert 0 hat.

Wenn ich die Werte direkt von der Leitung abgreife und manuell rechne, 
komme ich auf jene 37°C.

Auf Temperatur reagiert der SHT71, er verändert also die Ausgabe der 
richtigen Richtung nach, wenn ich beispielsweise einen Föhn drüber halte 
(ebenso im übrigen auf Feuchte, die aber auch falsch ist (22 % RH gibt 
er an, ich messe mit meiner Wetterstation allerdings Werte zwischen 55 
und 60%).

Weiters ist mir aufgefallen, dass die Temperatur etwas sinkt, wenn ich 
mit der Hand ein wenig "Wind" erzeuge, wenn auch nur um etwa 2°C. Nun 
frage ich mich, ob das daher kommt, dass ich einfach die Luft kühle, 
oder ob der Sensor doch noch zu warm wird. Er kommt mir jedenfalls 
wärmer vor als die anderen Bauelemente.

Wenn es weiterhilft, könnte ich euch auch noch die Software per se 
zeigen.

von Martin (Gast)


Lesenswert?

Hast du alle Variablen, die für die Temperatur-Berechnung relevant sind, 
als Float deklariert?

von Jens G. (jensig)


Lesenswert?

>Weiters ist mir aufgefallen, dass die Temperatur etwas sinkt, wenn ich
>mit der Hand ein wenig "Wind" erzeuge, wenn auch nur um etwa 2°C. Nun
>frage ich mich, ob das daher kommt, dass ich einfach die Luft kühle,
>oder ob der Sensor doch noch zu warm wird. Er kommt mir jedenfalls
>wärmer vor als die anderen Bauelemente.

Möglicherweise PullUp Widerstand zu niedrig, damit hoher Strom in die 
Data-Leitung -> Hitze ...

Und dann sagt das DB:

2.3.3 Heater
An on chip heating element can be switched on. It will
increase the temperature of the sensor by 5-15 °C (9-27 °F).
Power consumption will increase by ~8 mA @ 5 V.

Vielleicht haste das ja - messe mal dessen Stromaufnahme.

von R.M. (Gast)


Lesenswert?

Da ich in Assembler programmiere, kann ich Variablen schlecht als Float 
deklarieren.

Den Heater habe ich eigentlich deaktiviert, da ich das SREG nur mit dem 
Wert 0b00000001 verändere, also nur die 12-bit Temperatur / 8-bit 
RH-Messung aktiviere. Den Heater schalte ich damit also jedes Mal aufs 
Neue aus.

Als Pull-Up habe ich den 10k-Widerstand wie im Datenblatt angegeben 
verwendet, die Pull-Ups des Mikrocontrollers (AVR ATmega8) sind 
deaktiviert. Als ich sie an hatte (dann waren sie wohl mit dem 
10k-Widerstand parallel geschalten) kam es tatsächlich zu einer 
Wärmeentwicklung am Sensor - jetzt allerdings gefühlt nicht. Leider habe 
ich kein Gerät zur genauen Messung hier.

von Jens G. (jensig)


Lesenswert?

>deaktiviert. Als ich sie an hatte (dann waren sie wohl mit dem
>10k-Widerstand parallel geschalten) kam es tatsächlich zu einer
>Wärmeentwicklung am Sensor - jetzt allerdings gefühlt nicht. Leider habe

Du glaubst doch nicht etwa wirklich, daß die µC-internen Pullups einen 
nennenswerten Strom liefern (die dürften eher >50kOhm sein).
Vielleicht haste eher den Pin als Output geschaltet, mit H-Pegel.

von R.M. (Gast)


Lesenswert?

Das war auch erst der Fall, da man die Kommunikation mit dem Sensor so 
beendet.

von DTB (Gast)


Lesenswert?

Hallo R.M.,

haben Sie mittlerweile die Fehlerursache gefunden ??

Ich habe die selben Probleme mit dem SHT21 - programmierung über die 
Plattform von c-control.

Gruß DTB

von Max (Gast)


Lesenswert?

Könnten Sie den Code für den SHT21 online stellen ??

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.