OneWire Sensoren Dynamisch abfragen und Temperatur zuordnen

Bei mir hat's geklappt. Danke!
Ich wusste gar nicht, dass man auf diesen Sensoren auch was speichern kann.

Dazu gibts DatenblÀtter :wink: Die haben andere schon gelesen und missbrauchen die zwei Alarmbytes.

Das ist - technisch - falsch.
Mit sensors.requestTemperature() werden die Sensoren angestossen die Temperatur auf dem Scratchpad zu speichern.
Je nach Auflösung dauert das bis zu 750ms.
Erst dann kann mit getTempC() der Sensor abgefragt werden.

Du stĂ¶ĂŸt das beschreiben an, liest aber sofort - und damit erhĂ€lst Du den alten Wert.
Erst wÀhrend des delay() ist der Schreibvorgang beendet.
Also musst Du tauschen:
Erst lesen, dann neuen Wert aufs Scratchpad schreiben lassen, dann Pause.

Dann wird bei mir wohl der Wert des vorherigen Durchgangs ausgelesen. FĂ€llt bei einer Sekunde nicht auf. Aber wenn man nur alle 5 Minuten ausliest, ist das natĂŒrlich wichtig.

GrundsÀtzlich: Anstossen, 1s warten, lesen. Wenn man sich das eingeprÀgt und angewöhnt hat, kommt man nicht in die Verlegenheit...

Wenn Du mit setWaitForConversion(true) (Default) arbeitest, blockiert die Abfrage bis er fertig ist.
Bei mehreren Sensoren ist aber das selbst warten (mit millis(), wenn man noch anderes tun will) und dann lesen die effektivere Lösung.

Gruß Tommy

Ich hatte noch etwas herausgefunden; vielleicht dass das jemand interessiert. Ich hatte spaßeshalber 10 von diesen Sensoren parallel angeschlossen. Es trat da ein Fehler auf: Beim Neustart oder Reset haben 1, 2 oder 3 Sensoren nicht mehr mitgespielt und gaben nur noch -127 aus. Ich konnte das, nach langem probieren, beheben, indem ich nicht bei allen zu gleich die Temperatur angefordert hatte sensors.requestTemperatures(), sondern jeden einzelnen hintereinander. sensors.requestTemperaturesByAddress(sensorID[i]). Der Fehler trat dann nicht mehr auf.

Nein, dass ist nur ein beheben der Symptome, ohne tatsÀchliche fachliche Lösung.

Wie sieht denn Deine elektrische Schaltung dazu aus?
Wie hoch ist der tatsÀchliche Pullup?
Wie ist die LeitungskapazitÀt?

Und wenn das alles zueinander passt, ist Dein Problem auch keines mehr.
Die entsprechenden Infomationen finden sich im DaBla und den AN.

Ich hatte auch nicht behauptet, dass ich die Ursache gefunden und verstanden hÀtte; sondern eben nur durch rumprobieren beheben konnte. Mit den Pullup-WiderstÀnden hatte ich auch probiert, bis runter zu 1kΩ.

:thinking:

Das runtersetzen des Pullup allein fĂŒhrt ggfls. dazu, dass es keine vernĂŒnftige Flanke H/L mehr gibt,
LeitungsfĂŒhrung und LeitungslĂ€ngen spielen eine sehr gewichtige Rolle bei 1-Wire.

Sehr kompetente Antwort, nicht nur hinsichtlich Programmierung, sondern auch hinsichtlich Elektrik und Elektronik. Vielleicht, wenn ich Muse habe, befasse ich mich auch mal mit solchen Sachen.
Die Sensoren stecken alle auf dem selben Steck-Board, Leitungen maximal 20 cm lang.

@waldwurm
hmm ich habe hier auch so an die 10 sensoren und die leitungslĂ€nge ist stellenweise 10Meter lang. sie hĂ€ngen auch an 2 punkten und treffen sich dann an dem hub. Ok Esera hatte mir den tiop gegeben wenn ich die sensoren selber verlöte und in hĂŒlsen einklebe sollte ich an jeden sensor noch ein 100nF Kondensator anlöten. vcc-gnd. gerade bei Langen LĂ€ngen Das habe ich getan. die 0805 passen da ganz gut drĂŒber. Bisher keine Probleme. der Wiedertsand liegt normal bei 4,7K, Vieleicht ist das ja auch die Uhrsache, das deine Spannungsversorgung gaga ist. gerade was steckboards angeht, die haben nie ganz saubere verbindungen. das habe ich selber gemerht als ich ein spi bus getestet habe, unsauberes signal mit den steckteillen. nach dem verlöten, alles top.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.