Hallo mal wieder, meine Tempsensoren spielen mal wieder bescheuert. Problem sieht so aus: Ich habe zwei verschiedene Berechnungen, die beide die Temperatur vom DS18B20 ausrechnen. Der Witz ist, das seit HEUTE MORGEN die EINE BERECHNUNG nicht mehr auf EINEM!!! bestimmten Sensor funktioniert... Als Ausgabe bekomme ich +85 Grad und nichts geht. Der Witz an der Sache: Nehme ich einen anderen Sensor, so laufen beide Berechnungen tadelos und die Temp-Ausgabe ist ok. Das is doch völliger Schwachsinn und unlogisch, wie kann das sein? Hier mal ein Auszug aus beiden Berechnungen: Erster Code, der funktioniert auf allen Sensoren Do 1wreset 1wwrite &HCC 1wwrite &H44 Wait 1 1wreset 1wwrite &HCC 1wwrite &HBE For I = 1 To 9 Sp1(i) = 1wread() Next Tmp1 = Sp1(1) And 1 If Tmp1 = 1 Then Decr Sp1(1) T1 = Makeint(sp1(1) , Sp1(2)) Temp1 = T1 / 16 Zweiter Code, den EIN Sensor nicht mehr will und 85 Grad anzeigt: Do 1wreset 1wwrite Read_rom Family_code = 1wread() For I = 1 To 6 Serial_number(i) = 1wread() Next Crc = 1wread() 1wwrite Convertt Do Temp = 1wread() Loop Until Temp = &HFF 1wreset 1wwrite Skiprom 1wwrite Read_ram For I = 1 To 9 Scratch(i) = 1wread() Next Temp = Scratch(2) Shift Temp , Left , 8 Temp = Temp + Scratch(1) Stemp = Temp Stemp = Stemp / 16
85°C gibts bei den Dingern, wenn man sie ausliest, ohne seit dem letzten Power-Up irgendwann mal eine Messung durchgeführt und lange genug gewartet zu haben. Das ist einfach nur der Wert, den in den Messregistern nach dem Power-Up drinsteht.
Hi, EIN Sensor funktioniert plötzlich mit dieser Berechung nicht mehr? Hast du eienen Gegentest mit einer anderen Berechnung gemacht? (Mit einem anderen Sensor ist ja klar) Denn diese Beschreibung schreit geradezu nach einem DEFEKT des Sensors... Gruß Carsten
Carsten Sch. schrieb: > Hi, > > EIN Sensor funktioniert plötzlich mit dieser Berechung nicht mehr? > Hast du eienen Gegentest mit einer anderen Berechnung gemacht? (Mit > einem anderen Sensor ist ja klar) > > Denn diese Beschreibung schreit geradezu nach einem DEFEKT des > Sensors... > > Gruß > Carsten Den Effekt kenne ich, da ist irgendwas mit dem Timing unsauber da kommt dieser 85Grad Fehler. Tipp von MAX gibt es I2C auf OneWire Umsetzter. Seit dem ich das Einsetzte gibt es keine Probleme mehr.
Er braucht gar nicht deket zu sein bzw. ganz defekt zu sein. 85 Grad heißt ja, daß die Register auf jeden Fall noch auslebar sind und er antwortet. Durch irgendwelche Einflüsse hat sich das Timing vielleicht ganz wenig verändert und paßt nicht mehr. Delays lieber etwas länger als im Datenblatt. Deshalb kann es auch passieren, daß ein Sensor mal funktioniert und mal nicht. Besonders auch noch dann, wenn man keine konstante Quelle für das Timing hat und µC nebenbei noch andere Sachen macht (oder lhalt manchmal nicht und deshalb schneller fertig ist mit irgendwas). Also Softwareproblem möglich.
bei mir funktioniert ein Delay von 500ms, meistens. Deshalb nehm ich 800ms, da klappts sicher
sBronco schrieb: > bei mir funktioniert ein Delay von 500ms, meistens. > Deshalb nehm ich 800ms, da klappts sicher Laut Datasheet sind es in Standardeinstellung 12 Bits ja auch max. 750ms.
edgar schachler schrieb: > Den Effekt kenne ich, da ist irgendwas mit dem Timing unsauber da kommt > dieser 85Grad Fehler. Tipp von MAX gibt es I2C auf OneWire Umsetzter. > Seit dem ich das Einsetzte gibt es keine Probleme mehr. Kannst mal sagen wie das Teil heisst? Evtl. sogar wo du die her bekommst?
Hallo! Das it der DS2482, den gibt es bei Reichelt, als Einer oder Achter. Wobei der Achter ziemlich teuer ist. Tipp: Bei Maxim konnte man kostenlose Muster bestellen, einfach mal checken ob das noch geht. MfG
edgar schachler schrieb: > Hallo! > Das it der DS2482, den gibt es bei Reichelt, als Einer oder Achter. > Wobei der Achter ziemlich teuer ist. Tipp: Bei Maxim konnte man > kostenlose Muster bestellen, einfach mal checken ob das noch geht. > > MfG Ha! Korrekt danke :):)
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.