DS18B20 Index - Verständnisfrage

OP #7638568
Lesenswert?

Die DS18B20 können über einen Index (0 .. n) angesprochen, wobei die 0 dem Sensor mit der niedrigsten Adresse entspricht. Wenn ich das richtig sehe erledigt diese Zuordnung die Dallas Bibliothek. Im Scratchpad gibt es 3 Bytes, die beschreibbar sind. Nun meine Frage: können diese Scratchpadbytes über den Index angesprochen werden oder nur über die Adresse des Sensors? Mein Gedanke ist, wenn diese Bytes nicht benötigt werden, könnte man dort die Messpunkte zuordnen (MP1 ... n). Beim Austausch würde wieder der MP in das Scratchpad des neuen Sensors geschrieben werden und damit entfällt das "Gesuche" nach der Reihenfolge der Adressen. Oder gibt es eine andere Variante???

Hoffe hatten alle einen fleißigen Osterhasen und Dank für die Tipps.

M.

#7638577
Lesenswert?

Michael schrieb:

Die DS18B20 können über einen Index (0 .. n) angesprochen, wobei die 0 dem Sensor mit der niedrigsten Adresse entspricht.

Also diese Sensoren werden über eine Adresse angesprochen. Über sonst gar nichts.

Wenn ich das richtig sehe erledigt diese Zuordnung die Dallas Bibliothek.

Das ist möglich. Dann hängt alles weitere was du tun kannst oder nicht tun kannst, von dieser Lib und ihrer API ab. Schaue dort bitte nach.

Im Scratchpad gibt es 3 Bytes, die beschreibbar sind.

Das sind Userdaten die im EEPROM gespeichert werden können.

Nun meine Frage: können diese Scratchpadbytes über den Index angesprochen werden oder nur über die Adresse des Sensors?

Hängt von der lib ab.

Mein Gedanke ist, wenn diese Bytes nicht benötigt werden, könnte man dort die Messpunkte zuordnen (MP1 ... n). Beim Austausch würde wieder der MP in das Scratchpad des neuen Sensors geschrieben werden und damit entfällt das "Gesuche" nach der Reihenfolge der Adressen. Oder gibt es eine andere Variante???

Die Userdaten können natürlich für eine Zuordnung verwendet werden. Du kannst einen SCAN durchführen und für alle gefundenen Adressen die Userdaten lesen. Was sollte dich davon abhalten. DU entwickelst doch die Software.

#7638580
Lesenswert?

Michael schrieb:

Wenn ich das richtig sehe erledigt diese Zuordnung die Dallas Bibliothek.

Hängt von der geheimen Dallas Bibliothek ab, welche Du nimmst. Es gibt 2 Bytes im EEPROM, die man benutzen kann. Z.B. kann man über die Suchfunktion jedem Sensor einen Index zuweisen und dort abspeichern. Diesen Index kann man dann von einem adressierten Sensor wieder auslesen.

Man kann einen Sensor über seine Adresse, die Suchfunktion oder alle gleichzeitig ansprechen.

OP #7639203
Lesenswert?

genau das war meine Idee und für 2 Sensoren sind das nur ein paar zeilen code. So kann einen Sensorwechsel meine Frau selbst durchführen, da die Software die Zuordnung der Sensoren selber macht.

Gruss M.

p.s. gibt halt immer Leute, die meinen alles zu verstehen und sinnfreie Beiträge in den Foren schreiben. Und wer nur mit einem Sensot umgeht, hat auch keine Probleme.

#7639304
Lesenswert?

Michael schrieb im Beitrag #7639203: [...]

p.s. gibt halt immer Leute, die meinen alles zu verstehen und sinnfreie Beiträge in den Foren schreiben. Und wer nur mit einem Sensot umgeht, hat auch keine Probleme.

Und das traurige ist, dass die gleichen Leute in ihrem Browser eine URL mit symbolischem Namen verwenden – denn die eindeutige IP-Adresse einer Website lässt sich ja gut merken und ändert sich auch nie … oder auch nicht.

OP #7639501
Lesenswert?

Ralf D. schrieb:

Michael schrieb im Beitrag #7639203: [...]

p.s. gibt halt immer Leute, die meinen alles zu verstehen und sinnfreie Beiträge in den Foren schreiben. Und wer nur mit einem Sensot umgeht, hat auch keine Probleme.

Und das traurige ist, dass die gleichen Leute in ihrem Browser eine URL mit symbolischem Namen verwenden – denn die eindeutige IP-Adresse einer Website lässt sich ja gut merken und ändert sich auch nie … oder auch nicht.

Du sprichst mir aus dem Herzen, Ralf.

Habe heute festgestellt, dass die Library die UD-Abfrage eines nicht existierenden Sensors nicht abfängt. Ergebnis ist 0, wenn kein Sensor angeschlossen, ist ein Sensor angeschlossen wird die UD dieses Sensors für den nicht vorhanden ausgegeben. Bei mehreren, scheint es die letzte zu sein. Da kann ich mich aber auch irren, habe es nicht mehr notiert. Das erste Faktum genügt mir. Gruss

OP #7641310
Lesenswert?

Peter D. schrieb:

Michael schrieb:

Habe heute festgestellt, dass die Library die UD-Abfrage eines nicht existierenden Sensors nicht abfängt.

Wie wärs, endlich mal den Quelltext der konkreten Lib zu verlinken!

Ich weiß nur, was meine Lib macht. Auf die Addressierung eines Slaves gibt es kein ACK. Ein nicht addressierter Slave liefert immer 0xFF.

sry habe imo schlechtes inet im erzgebirge. bibliothek ist von miles burton (dallas temperature). in cpp ab zeile 787 // note If address cannot be found no error will be reported. int16_t DallasTemperature::getUserDataByIndex(uint8_t deviceIndex) { DeviceAddress deviceAddress; getAddress(deviceAddress, deviceIndex); return getUserData((uint8_t*) deviceAddress);

vllt. verstehe ich das aber auch nicht. Gibt es eine Bibliothek, die das Ansprechen eines nicht existierenden sensors mit einem Fehlercode abfängt. Falls ja, bin ich für einen Link dankbar.

thx M.

vllt bin ich ja auch nur zu blöd

#7641315
Lesenswert?

Michael schrieb:

Peter D. schrieb:

Wie wärs, endlich mal den Quelltext der konkreten Lib zu verlinken!

sry habe imo schlechtes inet im erzgebirge.

Ist wahrscheinlich Neuland(tm).

bibliothek ist von miles burton (dallas temperature).

Wo findet man die? Eine Weltnetzadresse aka Link wäre von Vorteil.

vllt. verstehe ich das aber auch nicht. Gibt es eine Bibliothek, die das Ansprechen eines nicht existierenden sensors mit einem Fehlercode abfängt.

Klar, jede normale OneWire Lib, welche die normale 64 Bit One Wire ID anspricht.

OP #7642492
Lesenswert?

Falk B. schrieb:

Michael schrieb:

Peter D. schrieb:

Wie wärs, endlich mal den Quelltext der konkreten Lib zu verlinken!

nun wieder daheim Link ist https://github.com/milesburton/Arduino-Temperature-Control-Library

Klar, jede normale OneWire Lib, welche die normale 64 Bit One Wire ID anspricht.

da muss ich mich erst durchfitzen. Wertet die Funktion ein CRC aus?

schöne Woche Gruss M.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren