DS18B20 als defekt erkennen

Hallo

Danke für die Antwort.
Das hört sich interessant an. Doch leider reichen meine bescheidenen Kenntnisse noch nicht aus diese Befehlsfolge zu verstehen.
Kannst Du mir die Befehle näher beschreiben?

Ach den Sketch hatte ich gar nicht gesehen - du verwendest eine andere Sensor-Lib als ich. Diese bietet die Funktion "isConnected()", um zu prüfen, ob ein Sensor verbunden ist. Diese Funktion liest die Temperatur und prüft, ob die Daten gültig sind - beim auslesen der Temperatur passiert aber Lib-Intern das selbe. Liefert der Sensor keine/fehlerhafte Daten, kommt der Wert "DEVICE_DISCONNECTED" zurück, welcher mit -127 definiert ist.

Du müsstest also im Code nur prüfen, ob einer der Sensoren -127°C liefert, dieser wäre dann defekt. Außerdem solltest Du prüfen, ob einer der Sensoren 85°C liefert - in dem Fall könnte es sich um eine echte Temperatur handeln oder um den Standard-Wert, den ein Sensor nach dem initialisieren liefert, wenn er noch keine Messung durchgeführt hat. Diesen Wert würde ich auch als ungültigen Wert behandeln.

Außerdem würde ich noch überlegen, welche Differenz zwischen beiden Sensoren plausibel ist - ist die gemessene Differenz deutlich größer, kannst Du ja gff. auch von einem Fehler ausgehen.

Hallo mwyraz

danke für die Antwort.
Die -127°C überprüfe ich schon in meinem Sketch und wenn ich dann noch die 85°C auswerte dann müssten eigentlich alle Fehler erschlagen sein.
Die Differenz zwischen den Sensoren kann ich leider nicht auswerten da sie sich in zwei verschiedenen Speichern sind und deshalb schon von Haus aus verschiedene Temperaturwerte haben können.

Vielen Dank Rudi

Hallo Zusammen,

ich mache zurzeit ein Praktikum zum Thema Temperaturmessung mit ADruino und 1-Wire Sensor DS18B20.
ich habe die Schaltung aufgebaut und das Programm läuft problemlos nur die gemessene Temperatur ist irgendwie komich und zwar bekomme -127°C auch wenn kein Sensor angeschlossen ist.
Woran könnte es liegen??

Vielen Dank für weitere Hilfe

Grüße
Simo

GND nicht angeschlossen (liegt daran, weil du es nicht angeschlossen hast) oder Messung zu schnell (liegt daran, weil du es so programmiert hast).

mwyraz:
Du kannst "beliebig" viele DS1820 an eine Leitung hängen. D.h. einfach "Huckepack" übereinander löten.
Allerdings ist zu beachten, dass bei der 2-Draht-Variante die Sensoren einer nach dem anderen ausgelesen werden müssen - mit genügend Zeit dazwischen, um den internen Kondensator aufzuladen. Bei der 3-Draht-Verkabelung kannst Du alle direkt auslesen ohne warten zu müssen.

Käse!!!

Man muss bei beiden Versorgungsarten die Wandlerzeit von 750ms einhalte.
Messung starten für alle Sensoren >> 750ms Pause >> Sensoren einzeln auslesen.
Der interne Kondensator wir mit jeden positiven Impuls über den Widerstand geladen.