Liebe Forumsgemeinde, Ich beschäftige mich jetzt seit die Ferien angefangen haben wieder mit Mikrocontrollern und um genauer zu sein mit einem ATtiny2313 und dem DS1820. Ich habe das one wire protokoll verstanden und kann auch die Temperatur Sensoren auslesen. Jedoch wollte ich dann mit Hilfe der Register COUNT_PER_C und COUNT_REMAIN eine höhere Auflösung erreichen und dann kamen sehr schnell hintereinander um 1 grad oder mehr verschieden Werte raus. Das sollte so eigentlich nicht sein. Dann habe ich noch ein mal das Scratchpad komplett ausgeben lassen und parallel dazu einmal im Computer und im Mikrocontroller die crc berechnet und kam immer auf den richtigen wert, es gab also keine übertragungsfehler. Aber beim ausgeben des Scratchpads ist mir aufgefallen, dass COUNT_PER_C was laut Datenblatt für den DS18S20 konstant den Wert 16 haben soll, sich verändert und um die 84 lag. Außerdem kam es vor, dass der COUNT_REMAIN Wert höher als der COUNT_PER_C Wert war. Nach viel Recherche bin ich jetzt zu dem Schluss gekommen, dass ich gar nicht im Besitz von DS18S20 bin sonder von deren Vorgängern DS1820 die 2000 überarbeitet wurden wie hier zu lesen ist: https://www.digitemp.com/docs/ds1820-report.pdf Und die auch kein TO92 Packing haben sondern etwa doppelt so lang wie TO29 sind. Das Erklärt zumindest die schwankenden COUNT_PER_C werte (siehe seite 2 des obigen Dokuments) aber leider nicht das Auftreten von höheren COUNT_REMAIN Werten. Außerdem wurde an dem alten DS1820 eine starke Verfälschung der gemessenen Temperaturen bemängelt durch Luftfeuchte und andere äußere Einflüsse, dies erklärt die 2°C linearen Fehler, die ich bei anderen Sensoren aus der gleichen reihe an meinem Raspberry Pi festgestellt habe. Hat noch jemand anders Erfahrung mit dem alten DS1820? Wenn ja, ähnelt sie meinen? Ansonsten wollte ich mal allgemein fragen, wenn ich mir jetzt neue Sensoren kaufe, sollte ich eher zu den DS18B20 oder DS18S20 greifen? Falls ich mit meinen Aussagen oben falsch bin, oder jemand etwas zu ergänzen oder berichtigen hat, nur her damit.... LG lifesbest23
lifesbest23 schrieb: > Ansonsten wollte ich mal allgemein fragen, wenn ich mir jetzt neue > Sensoren kaufe, sollte ich eher zu den DS18B20 oder DS18S20 greifen? Im industriellen Umfeld werden zu 50% die DS18B20 im 8-µMAX eingesetzt. Es folgen DS18B20 und DS18S20 im TO92 mit 20% bzw. 14%. Die Versionen im SOIC liegen mit 10% (DS18B20) bzw. 6% (DS18S20) auf den hinteren Plätzen.
Zu schnell hintereinander Auslesen führt zu einer merklichen Eigenerwärmumng der Sensoren. Vielleicht liegt ja auch dort deine Temperaturabweichung begründet?
Alle 2 Sekunden auslesen verändert die Temperatur so wenig, dass es an den gemessenen Werten nicht sichtbar ist. Eigene Erfahrung.....
Ok, ich werde mir dann mal versuchen einen DS18B20 zu organisieren und bei meinem jetzigen DS1820 die Messwerte nur alle 2 s auslesen. Übrigens meine Beobachtung, dass das COUNT_REMAIN Register höhere Werte als das COUNT_PER_C Register hat kann ich nicht mehr bestätigen, es muss anscheinend recht spät gester gewesen sein, als ich das ausgelesen habe.... Nur falls es jemanden interessiert, der alte DS1820 hat die Temperatur über zwei Oszillatoren und deren Frequenzverschiebung in Abhängigkeit von der Temperatur gemessen, der DS18S20 hingegen hat wie der DS18B20 einen 12 Bit ADC integriert gibt aber bei den beiden Temperatur Bytes nur 9 Bit aus. Die anderen drei Bits können über die beiden oben genannten Register ermittelt werden. Das wurde aus Kompatibilitätsgründen so gemacht.... lifesbest23
lifesbest23 schrieb: > dass ich gar > nicht im Besitz von DS18S20 bin sonder von deren Vorgängern DS1820 Ging mir auch mal so. :-) Ich hatte definitiv DS18B20 gekauft und dann waren das doch DS18S20. Aber grundsätzlich ist hier die Diskussion um Temperatur, deren Messung und die Genauigkeit nie so ganz richtig. Gerade bei der Genauigkeit kann man gewaltige Abstriche machen, wenn man sich das ganze mal vom Weiten ansieht. Weder die Messung noch das Nachregeln ist so exakt, wie viele sich die Messung wünschen. Der Faktor Zeit spielt eine große Rolle dabei.
:
Bearbeitet durch User
lifesbest23 schrieb: > Ok, ich werde ... bei meinem jetzigen DS1820 die Messwerte nur alle 2 s > auslesen. Bei einem Messwert alle zwei Sekunden, brauchst du noch keine Angst zu haben, dass dir irgendetwas entgeht.
> Nach viel Recherche bin ich jetzt zu dem Schluss gekommen, dass ich gar > nicht im Besitz von DS18S20 bin sonder von deren Vorgängern DS1820 die > 2000 überarbeitet wurden wie hier zu lesen ist: Dann solltest du dankbar sein. Die alten DS1820 in dem langen Gehaeuse waren naemlich besser. > Hat noch jemand anders Erfahrung mit dem alten DS1820? klar. > Wenn ja, ähnelt sie meinen? Nein. Ich hab naemlich das Datenblatt gelesen. :-) Mit den Registern aus dem alten DS1820 konnte man sich die Temperatur auf 1/100Grad genau ausrechnen. Natuerlich waren die dadurch nicht auf 1/100Grad absolut genau! Aber man konnte auf 1/100Grad genau eine Temperatur regeln. Das geht mit den neuen nicht mehr. Bei richtiger Programmierung sind die neuen und die alten im uebrigen softwaremaessig 1:1 austauschbar. Das ist ja der Grund warum ein fester Wert im Register steht, damit alte Software weiterlaeuft. Olaf
@Olaf, du hast recht, der alte DS1820 hat eine höhere Auflösung, durch den höheren COUNT_PER_C wert und nachdem ich dann noch etwas an meinem Code verändert habe, konnte ich auch diese Werte genau so erhalten, ich weiß jedoch leider nicht, woran das lag, dass die teilweise immer um ein paar Grad falsch waren... Ich habe mir jetzt auch noch mal einen DS18S20 gekauft, und der Funktioniert auch, bloß merkt man halt deutlich, dass der nur eine Auflösung von 0,06 grad hat... lfesbest23
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.