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.
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.
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.
da bin ich ja auf dem richtigen Weg. Danke Euch beiden. Gruss M.
:
Bearbeitet durch User
Zusatzfrage: welche Werte enthalten die UserDate nach Auslieferung? Ausgelesen hatte ich mal vierstellige? Sind auch Werte kleiner 10 bekannt? thx. M.
Was für ein Käse. Da haben diese ICs schon eine WLTWEIT einmalige 48 Bit ID, und dann wollen Leute da immer noch was eigenes dazu stricken.
Falk B. schrieb: > Was für ein Käse. Da haben diese ICs schon eine WLTWEIT einmalige 48 Bit > ID, und dann wollen Leute da immer noch was eigenes dazu stricken. Haha genau, jetzt haben alle Netzwerkgeräte schon eine weltweit einmalige MAC Adresse aber ein paar blöde Leute haben trotzdem die IP-Adresse erfunden.
Falk B. schrieb: > Was für ein Käse. Da haben diese ICs schon eine WLTWEIT einmalige 48 Bit > ID, und dann wollen Leute da immer noch was eigenes dazu stricken. Wer einfach denkt, denkt meist zu kurz und kann nichts Neues schaffen, verbirgt zudem sein Unwissen mit solchen Statements. Gruss M.
Eine ID im EEPROM zu vergeben, ist schon recht geschickt. Dann kann man einen defekten Sensor wechseln und ihm die selbe ID verpassen. Und die Software weiß, ob der Sensor registriert wurde oder neu ist.
Peter D. schrieb: > Eine ID im EEPROM zu vergeben, ist schon recht geschickt. Dann kann man > einen defekten Sensor wechseln und ihm die selbe ID verpassen. > Und die Software weiß, ob der Sensor registriert wurde oder neu ist. Manchen talentlosen fällt es schwer, die Unterschiede von physikalischen und logischen Adressen zu verstehen und deren Vor- und Nachteile.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
Michael schrieb: [...] > 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.
Ralf D. schrieb: > Michael schrieb: > [...] >> 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
:
Bearbeitet durch User
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.
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
:
Bearbeitet durch User
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.
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.
Michael schrieb: > Wertet die Funktion ein CRC aus? die "Funktion" kenne ich nicht, ich habe es selbst gemacht oder man sucht in den Libs crc8 crc16 ist öfter zu finden.
:
Bearbeitet durch User
Joachim B. schrieb: > oder man sucht in den Libs crc8 crc16 ist öfter zu finden. danke Dir, habe nun die cpp abgewandelt. getAddress(deviceAddress, deviceIndex); gibt Flag zurück. mit if else wird entweder index oder 0xFF (else) zurückgegeben, damit ist alles erledigt. Gruß M.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.