1wire DS1820 liefert t=8500

  • Hallo,

    mein Temperatursensor macht manchmal komische Sachen.

    Siehe hier:

    Code
    pi@raspberrypi ~ $ cat /sys/bus/w1/devices/10-000802c35d80/w1_slave 
    aa 00 4b 46 ff ff 0c 10 87 : crc=87 YES
    aa 00 4b 46 ff ff 0c 10 87 t=85000

    Manchmal liefert der Sensor halt die direkte t=85000. Auffällig ist, dass bei den ersten beiden Ansteuerungen des Sensors, die Werte nicht in Ordnung sind. Anschließend sind die Werte wieder gut.
    Gibt es spezielle Verhaltensweisen, dass man die ersten beiden Messwerte nicht nutzen soll oder änhliches?

  • Hallo Julian,

    das ist vollkommen normal - die ersten beiden Messwerte kannst Du in der Regel ignorieren. Der Messwert 85000 hat den Status einer Fehlermeldung. Taucht dieser Wert in einer späteren Messung auf, dann liegen Probleme in der Stromversorgung vor.
    Deswegen solte Dein Programm diese Werte nicht weiter betrachten. Außer Deine Werte liegen immer so im Bereich 80 bis 90 °C - dann mag natürlich auch 85000 ein sinnvoller Messwert sein. Da sich Temperaturen aber nicht in Sekundenschnelle extrem ändern, kannst Du anhand des vorigen und des nachfolgenden Werten erkennen, ob der Messwert valide (gültig) ist.

    Siehe auch mal das Datenblatt zum Sensor ...

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (9. Januar 2015 um 15:57)

  • Hallo,

    vielen Dank für Eure Rückmeldungen.

    Habe den Sensor direkt an einem Breadbord angeschlossen.
    Stromversorgung erhält dieser auch über die GPIOs.

    In der Regel sind die Temperaturen von 18-24°C.
    Habe noch einen DHT11 angeschlossen, der auch manchmal "murks" rausgibt.
    Z.B. 22°C, 22°C 10,250°C 22°C...

    Gruß
    Julian

  • Noch ein Tip, wie man invalide Messwerte relativ ausfiltern kann:
    Mehrere Messungen (möglichst ungerade Anzahl n) ausführen, aufsteigend sortiert ablegen und denn Wert mit dem Index n/2+0.5 nehmen (Medianwert):

    Beispiel mit 5 Messungen:
    1. Messung: 22,50 °C
    2. Messung: 22,50 °C
    3. Messung: 80,25 °C (?)
    4. Messung: 80.50 °C (?)
    5. Messung: 23,00 °C

    Sortiert:
    [Index] : [Wert]
    1 : 22,50
    2 : 22,50
    3 : 23,00
    4 : 80,25
    5 : 80.50

    Medianwertindex = 5/2 + 0.5 = 3
    Medianwert: 23,0 °C

    Problem: Da jede Messung ca. 1sec dauert, dauert die Gesamtmessung also 5sec.
    In den meisten Fällen ist das aber unkritisch.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!