DS1820 verliert die Auflösung

  • Hallo Zusammen,

    Ich bin dabei mir einen Bodentemperatur-Sensor zu bauen.
    Dafür habe ich mir aus China gekapselte DS18?20 Sensoren kommen lassen (Fragezeichen ist richtig - ich weiß nicht was wirklich drin ist) .

    Um die Genauigkeit der Sensoren nun etwas einschätzen zu können habe ich sie auf Kontakt zusammengebunden und zusammen in eine Plastiktüte gesteckt.
    Ein Script liest nun etwa jede Minute die Sensoren aus und schreibt die Werte in eine Datenbank.
    Daraus will ich mir einen Mittelwert bilden um dann die Abweichung der einzelnen Sensoren vom Mittelwert zu sehen.
    Die 5 Sensoren hängen an GPIO4 und das Script schaut bei /sys/bus/W1/devices/28-0..../w1_slave nach den Werten.

    Problem:
    nach ca. 24 Stunden bekomme ich auf einmal keine Auflösung wie bisher mit 3 Stellen hinter dem Komma.
    Es gibt nur noch die Auflösung mit einer *.500 oder *.000.
    Ein Re-start des Raspberry Pi ändert nichts.
    Wenn ich jedoch den Pi von der Stromversorgung nehme und wieder anschliesse habe ich eine Auflösung von 3 Stellen hinter dem Komma.
    Nach einigen Stunden fällt er dann wieder in die "Rundungsvariante".
    In /sys/bus/W1/devices/28-0..../w1_slave steht dann t=XX000 oder t=XX500

    Hat jemand eine Idee was ich falsch mache?

    Besten Dank

    Gruss
    Tom

  • Wo ist das Problem?
    Die DS18B20/DS18S20 haben beide eine Genauigkeit (nicht zu Verwechseln mit der Auflösung) von +/- 0,5°C im Temperaturbereich von -10°C bis +85°C!
    Genauer bekommst Du es mit den Teilen sowieso nicht hin!

  • wenn ich richtig verstanden habe, dann ist das unterschiedliche Verhalten der Sensoren das Problem :)

    Also mich würde auch die Ursache interessieren, auch wenn die Teile eine Abweichung von bis zu 0.5°C haben...

    Suche Gleichgesinnte für mein Projekt!
    jamesmatik_200.png
    soll ein Baukasten (Software und Hardwaremodule) für Temperatur-Logging, kleine Steuerungsaufgaben und Smart-Home werden.

  • Hallo Jedo,

    wie gesagt: ich suche die Tendenz - über die Auflösung.

    Warum ist die Auflösung plötzlich (nach ca. 2.000 Auslesezyklen) weg? - und nach einem trennen von der Spannungsversorgung wieder da.
    Ein "shutdown -r" beseitigt das Problem nicht.

    Tom

  • Den Typ der Sensoren erkennt man am Familycode (ersten beiden Stellen der Kennung) der beim DS18B20 ist 28 der vom DS 18S20 und DS 1820 ist 10. Du hast also DS18B20 dran. Einzige Erklärung die ich für das Verhalten hätte ist Eigenerwärmung. Dazu muss der Pulldown Pullup aber schon sehr niedrig sein. Du hast doch einen dran, oder?


  • .....Dazu muss der Pulldown aber schon sehr niedrig sein. Du hast doch einen dran, oder?

    was für einen pulldown ? wenn überhaupt betreibt man den doch mit einem pullup :s

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)


  • Sorry vertippt, natürlich einen Pullup

    dachte ich mir, muss aber schnellstens korrigiert werden, sonst steht es "ewig" im Netz ;)

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)


  • Einzige Erklärung die ich für das Verhalten hätte ist Eigenerwärmung.

    ..kann ich jetzt so nicht nachvollziehen! Wenn Eigenerwärmung, dann sollten ja alle Werte höher werden...
    erklärt für mich nicht die fehlenden Nachkommastellen (oder ist dieses Fehlerbild bereits bekannt?)

    Suche Gleichgesinnte für mein Projekt!
    jamesmatik_200.png
    soll ein Baukasten (Software und Hardwaremodule) für Temperatur-Logging, kleine Steuerungsaufgaben und Smart-Home werden.


  • ..kann ich jetzt so nicht nachvollziehen! Wenn Eigenerwärmung, dann sollten ja alle Werte höher werden...
    erklärt für mich nicht die fehlenden Nachkommastellen (oder ist dieses Fehlerbild bereits bekannt?)

    ne an Eigenerwärmung glaube ich auch nicht, eher an "Abstürze" oder an gekippten Bits im DS was auch erklärt warum nach power off alles wieder gut ist.

    Man könnte doch die VCC der DS18B20 geschaltet machen über einen GPIO, zur Not auch mit 74HC4050 Treiber.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Obwohl es so nach Hardwarebug klingt, ist es wahrscheinlich nicht die schlechteste Idee, wenn Du mal - zumindest auszugsweise - die Software zeigst.

    - wann und wie werden die Mittelwerte gebildet ?
    - welche Werte werden in der DB gespeichert?
    - Abfragezyklus
    etc.

    Gruß, mmi

  • Hallo,

    Danke erstmal für das Interesse.

    Pull-up ist dran.
    Eigenwerwärmung sollte ich an der gemessenen (Eigen-)Temperatur des Sensors sehen !?
    Die Mittelwerte mache ich über SQL aus der Datenbank.
    Die "Datenbankschreiberei" soll die Stabilität der WLAN-Verbindung testen (ist auch eine Baustelle - vielleicht DIE(!) Baustelle?).

    Die geringe Auflösung habe ich schon in "/sys/devices/w1_bus_master1/w1_master_slaves".
    Es werden dort nach wenigen tausend Zyklen nur die "XX500" oder "XX000" angezeigt - keine Werte mehr à la "24937"

    Kann man nicht die Auflösung der Sensoren irgendwie einstellen?

    ich such mal weiter - Tips sind nach wir vor willkommen.

    Tom


  • Die geringe Auflösung habe ich schon in "/sys/devices/w1_bus_master1/w1_master_slaves".
    Es werden dort nach wenigen tausend Zyklen nur die "XX500" oder "XX000" angezeigt - keine Werte mehr à la "24937"
    Kann man nicht die Auflösung der Sensoren irgendwie einstellen?
    ich such mal weiter - Tips sind nach wir vor willkommen.
    Tom

    offensichtlich hast du ein Hardwareproblem ! prüfe die Verkabelung, installiere neue DS oder mache es doch so:


    "Abstürze" oder an gekippten Bits im DS was auch erklärt warum nach power off alles wieder gut ist.
    Man könnte doch die VCC der DS18B20 geschaltet machen über einen GPIO, zur Not auch mit 74HC4050 Treiber.

    was hindert dich einen freien GPIO Port für die VCC der DS zu nutzen, dann kannst du kontrolliert die VCC ein und ausschalten (ist zwar nur ein workaround aber immerhin)

    bei mir laufen 6 DS18B20 seit 3 Jahren immer an power aber sowas kenne ich nicht.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • ich hab nun auch schon seit einigen Jahren DS 18S20 in ganz wilder Verkabelung im Einsatz, allerdings über einen USB-Adapter DS9490R.
    Es gab nie Probleme.
    Jetzt hab ich noch einen DS 18S20 gefunden und werde den mal parallel schalten.
    mal sehen.....


  • ich hab nun auch schon seit einigen Jahren DS 18S20 in ganz wilder Verkabelung im Einsatz, allerdings über einen USB-Adapter DS9490R.
    Es gab nie Probleme.
    Jetzt hab ich noch einen DS 18S20 gefunden und werde den mal parallel schalten.
    mal sehen.....

    oder du wechselst alle mal zu DS18B20 ;)

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • ich hätte hier noch mal ne Frage..
    Wie sind die Sensoren eigentlich an den RasPi angeschlossen?
    (ich verwende die im BILD_2 gezeigte Schaltung von Raspiprojekt

    weiters habe ich heute Vormittag ein wenig Zeit mit dem Datenblatt verbracht.. leider konnte ich noch nicht rauslesen, welche Genauigkeit die Sensoren haben wenn die Auflösung nicht auf 12 Bit sondern auf 9 Bit läuft..
    Kann es sein, dass bei 9 Bit dann die Genauigkeit auf 0.5°C gesetzt wird?

    wie schnell darf man die Sensoren hintereinander abfragen?

    Suche Gleichgesinnte für mein Projekt!
    jamesmatik_200.png
    soll ein Baukasten (Software und Hardwaremodule) für Temperatur-Logging, kleine Steuerungsaufgaben und Smart-Home werden.

    Einmal editiert, zuletzt von RasPi-Azubi (26. Juni 2014 um 13:08)

  • Hallo, kurz zu Deinen letzten Fragen:


    Kann es sein, dass bei 9 Bit dann die Genauigkeit auf 0.5°C gesetzt wird?


    Umschalten auf eine geringere Auflösung ist im Kernelmodul (w1-therm) bisher nicht realisiert.


    wie schnell darf man die Sensoren hintereinander abfragen?


    Eine Abfrage beginnt mit dem "open" der entsprechenden Datei für einen Sensor im /sys Verzeichnis. Sobald der anschliessende "read" das Ergebnis erhält, ist die Messung abgeschlossen - man könnte dann sofort denselben oder einen anderen Sensor abfragen.

    Ob die Abfrage verschiedener Sensoren gleichzeitig möglich ist (z.B. über threads) weiß ich jetzt auf die Schnelle nicht - glaube aber eher nicht.

    Gruß, mmi


  • Ob die Abfrage verschiedener Sensoren gleichzeitig möglich ist (z.B. über threads) weiß ich jetzt auf die Schnelle nicht - glaube aber eher nicht.


    Du glaubst richtig. Die Daten werden auf einem Bus übertragen und die Datenübertragung wird vom Master gesteuert. Der sagt dem Sensor, wenn er gebraucht wird. Ein einzelner DS18B20 benötigt zum Bereitstellen der Bitfolge bis zu 750ms, dazu kommen noch Abfragezeiten u.ä. im µs-Bereich. Also eine Sekunde pro Sensor ist beinahe zu wenig, erst recht, wenn es viele Sensoren auf einem Bus sind.

Jetzt mitmachen!

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