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.
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?
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?
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?
R.M. schrieb: > Zimmertemperatur (etwa 23 Grad) komme ich mit > den Werten des SHT71 auf etwa 37°C. ° Fahrenheit ?
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...
...schau noch mal über deine routine zum auslesen, evtl. hast du highbyte und lowbyte beim verkehrt herum ausgelesen....
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.
Hast du alle Variablen, die für die Temperatur-Berechnung relevant sind, als Float deklariert?
>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.
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.
>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.
Das war auch erst der Fall, da man die Kommunikation mit dem Sensor so beendet.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.