ich möchte eine Temperaturmessung mit 2 DS18 Fühlern realisieren. Als Ausgabe möchte ich ein 2zeiliges LCD-Display nutzen. In der oberen Zeile soll die Innentemperatur angezeigt werden und in der unteren die Außentemperatur. Da man beide Fühler an einen Pin anschließen kann/soll (oneWire), frage ich mich, wie ich die Fühler dann auseinander halten, bzw. trennen, kann? Bis jetzt bekomme ich nur einen Wert in der oberen Zeile angezeigt und ich weiß nicht von welchem der beiden Fühler dieser stammt.
apro1974:
Da man beide Fühler an einen Pin anschließen kann/soll (oneWire), frage ich mich, wie ich die Fühler dann auseinander halten, bzw. trennen, kann?
z.B. über die eindeutige ID die jeder Sensor hat.
Bis jetzt bekomme ich nur einen Wert in der oberen Zeile angezeigt und ich weiß nicht von welchem der beiden Fühler dieser stammt.
Du schreibst leider nicht, welche lib Du benutzt.
Miles Burton hat eine DallasTemperature und Paul Stoffregen eine OneWire.
HotSystems hat es schon geschrieben. Nutze ggfls. die Beispiele.
Beide libs funktionieren und bieten in der IDE unter DATEI - BEISPIELE - runterscrollen / Beispiele aus eigenen Bibliotheken / und dort nachschauen - eine Möglichkeit sich mit den Sensoren zu beschäftigen.
Da Du auch keinen Code zur Verfügung stellst, kann Dir nur empfohlen werden.
Die Sensoren haben eine einzigartige ID - meine 64 Bit lang.
Nach dieser ID wird beim Suchen - gesucht.
Dadurch ist sichergestellt, daß die Sensoren, sofern sich Diese nicht ändern, immer in gleicher Reihenfolge gefunden werden.
(ist im Datenblatt beschrieben, wie Das GENAU funktioniert).
Dein Problem ist, daß Dir die IDs nicht bekannt sind und Du auch nicht weißt, in welcher Reihenfolge Diese gefunden würden - keine Angst, weiß ich auch nicht :).
Das ist auch der Grund, warum nach Austausch eines Sensor dieser sich 'irgendwo' einsortiert - eben nach Seiner ID.
Solange Du aber die Sensoren nicht austauscht und Dir Keiner davon verstirbt, bleibt die Reihenfolge immer gleich - Du kannst also in der Lib mit dem Index (quasi die Nummer des Fund) arbeiten.
Welcher Das nun ist ... halte Einen Sensor in der Hand - Der, Der jetzt warm wird, ist genau Dieser.
... selber habe ich die User-Bytes missbraucht um dort eine eigene ID einzubringen, mit Der ich die Sensoren unterscheide.
So kann ich z.B. an der Heizung einen ausgefallenen Sensor '#12' durch einen neuen DS18B20 ersetzen, Dem ich die ID #12 einprogrammiert habe.
postmaster-ino:
... selber habe ich die User-Bytes missbraucht um dort eine eigene ID einzubringen, mit Der ich die Sensoren unterscheide.
So kann ich z.B. an der Heizung einen ausgefallenen Sensor '#12' durch einen neuen DS18B20 ersetzen, Dem ich die ID #12 einprogrammiert habe.
MfG
Interessant.
Könnte man das auch den weniger programmierbegabten Leuten mit
vertretbarem Aufwand näherbringen?
Schaue Dir die Beispiele an, ob Du damit alle ausgelesenen Daten angezeigt bekommst. #0 Temperatur Low-Byte #1 Temperatur High-Byte #2 TH oder UserByte 1 #3 TL oder UserByte 2 #4 Config #5 0xFF #6 #7 0x10 #8 CRC (Prüfsumme)
Anmerkung: #0 + #1 x 256 (oder #0 || #1<<8 ) ist die Temperatur in 1/16tel Grad C
Davon lassen sich #2, #3, #4 auch wieder zurück schreiben.
TH und TL werden beim ALARM_Search (0xEC) ausgewertet - nur Sensoren, Deren Temperatur oberhalb TH oder unterhalb TL ist, reagieren bei dieser Suche - man findet 'direkt' Sensoren, Die auf ein Problem hindeuten.
Wenn man Das nicht braucht, kann man die Bytes auch für eigene Zwecke missbrauchen.
Auch, wenn Es keine dummen Fragen gibt - so lässt sich durchaus erkennen, daß Sich zuvor keinerlei Gedanken dazu gemacht wurden, bis auf Einen: Bevor ich auch nur eine Sekunde meiner wertvollen Zeit verplempre, rotze ich das Fragment einer Frage, möglichst noch ohne Fragezeichen, in ein Forum und beschwere mich dann auch noch, daß da drauf Keiner eine mir schmeckende Antwort liefert.
Muß hier nicht, weder im Ganzen noch in Teilen, zutreffen, wäre aber schön, wenn Du Das Mal 'gedanklich durchkaust' - wie sich 'die andere Seite' so fühlt, wenn selbst die Beispiele zum Sensor in der IDE, Die die Lösung beinhalten könnten, noch nicht Mal gesucht wurden.
Zumindest entnehme ich Deinem Post nicht, daß Du bei dem Beispiel nicht zurecht kamst
Sollte mal ein Fühler defekt sein, muss ich nur schauen, wo der neue sich dann ein reit (Index 0 oder 1).
Eine Frage stellt sich mir nach wie vor. Kann das LCD Display kein Gradzeichen (°) darstellen? Oder muss ich da ne andere Tastenkombi für drücken?
Macht es einen Unterschied, wenn ich die Fühler auf 9bit umstelle? Falls ja, wie ging das?