Hallo Leute, ich weis, dass ich wieder ein ganz altes Thema aufgreife, aber eine (für mich) befriedigende Erklärung konnte ich im Forum nicht finden. Vielleicht kann mir ja doch einer eine Antwort geben, damit ichs begreife. Ich betreibe in meiner Schaltung drei DS18S20 (nicht im Parasitärmodus), einer davon hängt an einem 1,8m langem Kabel (ehem. Mauskabel). Ich gebe die Temperatur am Display auf eine Nachkommastelle genau aus. Der Sensor am Kabel zeigt im Schnitt ca. 2.8 +/-0,6°C weniger an. Jetzt habe ich alle Sensoren mal durchgetauscht, der am Kabel zeigt immer weniger! Wenn alle drei Sensoren auf der Platine verbaut sind, zeigen Sie auf +/-0,1 °C genau die gleich Temperatur an. Der Fehler ist auch nicht durch einen Offset im Programm korrigierbar, da er ja um +/-0,6°C schwankt. Den CRC-Code kann ich nicht vergleichen, weil ich nicht mehr genug Speicher für die Funktion auf meinem AVR habe, ich gehe aber davon aus, dass die gelesenen Werte stimmen müssen, da ja die restliche Kommunikation einwandfrei funktioniert. Kann mir jemand erklären, wie dieser Fehler zustandekommt? Oder wie man ihn vermeiden kann? Auf eine Antwort bin ich gespannt, Grüße, Alfred
1.Schon anderes abgeschirmtes Kabel versucht ??? 2.Was sagt der Oszi ? Störungen auf der Leitung ?
> Was sagt der Oszi ?
Was sagt die CRC?
Wie stellst Du sicher, dass der Sensor am Kabel die selbe Temperatur wie der (die) Sensor(en) auf der Platine hat?
Hallo Leute, vielen Dank für Eure Antworten. @oszi40: ein anderes Kabel könnte ich schon versuchen, ja, muss mal gucken was noch so in der Kiste ist ein Oszi hab ich leider nicht, da fehlt noch ein bisschen Geld @Dietmar wie gesagt, für nen CRC-check ist zuwenig Speicher über, aber vielleicht kann ich ´n paar Funktionen vorübergehen rausschmeissen und den CRC implementieren @Otto ich lege den Sensor am Kabel einfach neben die Senoren auf der Platine, sollte doch die selbe Temperatur sein... Grüße, Alfred
Wärmeableitung durch das Kabel ? Probier mal vor der Messung jeweils das Statusbyte zu lesen und dann erst den Messwert.
> ich lege den Sensor am Kabel einfach neben die Senoren auf der Platine, > sollte doch die selbe Temperatur sein... Ich habe mal die Temperatur auf einem Kühlkörper und in einem Kühlkörper gemessen (4mm stark), und man glaubt es kaum: da war ein Unterschied. Und wenn du einen systematischen signifikanten Unterschied der Temperatur feststellst, dann solltest du dich fragen: ist da vielleicht ein Unterschied? Was ist denn auf der Platine verbaut? Schon ein OP-Amp ca. 2cm vom Temperatursensor weg kann dir solche Temperaturdifferenzen erzeugen.
Ich habe bei meinen Sensoren auch das Problem gehabt. Wenn die Messungen im 1 Sekunden Takt stattfinden, steigt die Temperatur des Chips an. Wenn hingegen nur 1x pro Minute gemessen wird, stimmt die Temperatur. Gruß, Tubie
Hallo Leute, den CRC zu implementieren hab ich nicht geschafft, da läuft mir leider der Speicher über. @Lothar: Tatsächlich: wenn ich den Sensor am Kabel so wie auf dem Bild auf die Platine lege, haben tatsächlich alle drei Sensoren den gleichen Wert. Vorher hatte ich ihn immer nur "in die Nähe" gelegt, ca. 2cm unterhalb des AVR´s... Das muss ja heissen, dass das LCD seine Umgebung um ca. 3°C erwärmt! Das hätte ich nicht vermutet! D.h. ich muss mir einen anderen Platz auf der Platine suchen... Ach ja, ich mache alle fünf Sekunden eine Temperaturkonversion, da sollte es keine relevante Eigenerwärmung geben, oder? Vielen Dank für Eure Antworten, Grüße, Alfred
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.