DS12B20 misst immer 85°C

  • Hallo,

    habe an dem Raspi TypB einen oder mehrere DS18B20 angeschlossen.
    3Punkt-Anschluß (GND, DQ, VCC) inkl. Widerstand 4,7k wie im Internet beschrieben.
    Die Adresse/Adressen der DS18B20 werden korrekt erfasst und auch die entsprechenden Verzeichnisse erstellt.

    Die gemessene Temperatur ist immer 85°C. Im Internet habe ich gelesen, dass evtl. das Timing nicht stimmt. Der DS18B20 benötigt ca. 750ms für die Wandlung der Temperatur. Laut Internet soll man dem DS... etwas mehr zeit geben, ca. 800ms oder mehr.

    Meien Frage:
    Wie kann ich das Timing anpassen? Ich nutze doch die im Kernal integrierten Treiber.
    Muss ich da irgend etwas anpassen? Ich bitte um Info.

    Herzliche Grüße
    addy

  • Hi,
    ändere mal testweise den Widerstand auf 9-10k: ich hatte das gleich Problem und bei mir hat das geholfen.

    Die Abtastzeit habe ich bei mir auf 5 sec. Minimum erhöht, das Teil braucht offensichtlich etwas Ruhe zwischendurch ;)

    Damit habe ich so ca. bei 95% alles Abfragen Erfolg.

    Mfg,
    die Zentris

  • Hallo,
    4,7K sollten bei diesem Sensor an kurzem Kabel eigentlich in Ordnung sein, so kritisch ist das nach meiner Erfahrung nicht.

    85 Grad meldet der Sensor lt. Datenblatt nach Initialisierung, also nach dem "Einschalten". Was den Messvorgang betrifft (open, read, close), sind 750 ms bereits durch das Kernelmodul gewährleistet.

    Wichtig ist, daß Du in Deinem Programm auch "CRC" abfrägst, um Fehlmessungen auszusortieren.

    Bei wiederholten Abfragen nicht vergessen, immer open-read-close zu verwenden (nacheinander folgende reads genügen nicht!).

    Gruß, mmi

  • Miss auch mal nach ob genug Spannung an den Sensoren ankommt, sowohl am Vcc als auch beim DQ. Dort sollten die 3.3V anliegen, sonst mag der Sensor nicht arbeiten. Überprüfe auch mal die Anschlüsse ob die alle korrekt sitzen, auch damit sind die Sensoren recht zickig wenn irgendwie etwas nicht korrekt sitzt.

    Der Widerstand ist hier ehr nicht das Problem. Sofern die Sensoren alle angezeigt werden passt dieser. Größere Widerstände braucht man - nach meinen Erfahrungen gar nicht -, nur wenn die Leitungen lang und länger werden muss man nach unten anpassen. Wenn das nötig wird merkt man es aber, denn dann werden einige bis alle Sensoren erst gar nicht mehr angezeigt.

  • Aktueller Stand:
    4,7k gegen 10k getauscht --> leider kein Erfolg

    3,3V gemessen, ok

    Temperatursensor habe ich direkt auf die Hukepackplatine gelötet.
    Diese wiederum sitzt genau auf dem Stecker P1 des PI.

    Habe mal mit dem Oszilloskop das Timing sichtbar gemacht.
    Initialisierungsphase dauert ca. 100ms, nach ca. 800 ms sollte ja das Auslesen der Temperatur beginnen. Da sehe ich aber nichts. Das ganze beginnt nach ca. 7,5 s von vorne.

    Geladen habe ich folgende Module:

    modprobe wire
    modprobe w1_gpio
    modprobe w1_therm


  • Größere Widerstände braucht man - nach meinen Erfahrungen gar nicht -, nur wenn die Leitungen lang und länger werden muss man nach unten anpassen.

    eben ! eher kleinere Widerstände


    Aktueller Stand:
    4,7k gegen 10k getauscht --> leider kein Erfolg

    deswegen war das auch nicht erfolgreich.

    Ich habe ja am PI auch noch nicht viel gemacht, aber am AVR half es am Timing zu drehen und kleinere Widerstände zu setzen.

    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)

  • Soweit sieht es so aus, daß Du softwaremässig alles richtig machst. Ich würde mal mit nur einem Sensor testen und den Widerstand eher kleiner machen (obwohl es mit 4,7K bei einem Sensor an kurzer Leitung bei meinen RPi's immer funktioniert hat).

  • Habe auch nur einen Sensor angeschlossen, Leitung zur gpio sehr kurz, da nur auf dem Sandwich-Platinchen angelötet.
    Auch der Anschluss von VDD an 5v brachte kein Erfolg.
    Mit Oszilloskop kann man erkennen, dass der Sensor nach ca. 7 s angesprochen wird. Die Initialisierung dauert ca. 100ms,
    das Auslesen nach ca. 700 - 800ms erfolgt nicht!
    Wie kann man die Abtastrate verändern?
    LG addy

    Einmal editiert, zuletzt von addy (5. Januar 2014 um 12:53)

  • Das Problem konnte gelöst werden, durch (und nur durch) laden folgender Module
    sudo modprobe w1-gpio pullup=1
    sudo modprobe w1-therm

    Parameter pullup=1 ganz wichtig, damit die parasitäre Speisespannung initiiert wird.


  • Das Problem konnte gelöst werden, durch (und nur durch) laden folgender Module
    sudo modprobe w1-gpio pullup=1
    sudo modprobe w1-therm

    Parameter pullup=1 ganz wichtig, damit die parasitäre Speisespannung initiiert wird.

    nun ja, externer pullup liefert mehr Strom und ist sicherer ;) wichtig bei längeren Leitungen

    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)

Jetzt mitmachen!

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