Hallo, ich rechne die Temperatur mit den zwei zusätzlichen Registern auf zwei Kommastellen genau aus. Die Formel dafür steht ja im Datenblatt. Aber wie siehts bei negativen Werten aus? Zuerst Zweierkomlement dann letztes Bit wegsschneiden und dann mit der Formel berechnen oder liege ich da falsch? BtW: Mir kommen die Temperaturen zu hoch vor(habe zwei Stück getestet), hat schonmal jemand so ein Teil mit nem guten Thermometer verglichen? Gruesse Bob
Mess doch mal Eiswasser. Bei mir waren es 0,1°C (es sollte 0,0° sein) Auf zwei Kommastellen brauchst du nicht zu rechnen, die Auflösung liegt bei 1/16°
Eiswasser könnt ich mal testen. Und wie siehts mit der Rechnung für negative Werte aus, stimmt das so?
Die Eiswassermethode liefert bei beiden 0,12 Grad. Sollten also richtig messen. Komisch ist nur mich friert hier in meinem Zimmer und die zeigen 20 Grad an ;-)
Mich friert es nicht, meine Thermometer zeigen: Funkuhr mit Temperaturanzeige: 15,7° auf der Fensterbank Innen/Außen Thermometer: 16,8° auf dem Schreibtisch, 19,7° Ansaugluft des PCs auf dem Boden DS1820 mit LED Anzeige: 26,1° Sensor hängt am Lüftergitter des PC Netzteils DS1820 mit LC-Display: 1,2° Sensor hängt draußen vorm Fenster Wie alt ist dein DS1820 ? Ich habe vor kurzem einen bei Reichelt verkauft und diesen mit einem verglichen, den ich schon ein paar Jahre rumliegen habe: 2,5° unterschied. Der alte hat anscheinend Feuchtigkeit gezogen und ist ungenau geworden.
also die sind ganz neu gekauft. Ich weiss natürlich nicht wie lange die schon rumliegen. Einen habe ich mich Plastikspray versiegelt um der Feuchtigkeit entgegenzuwirken. Mal was anderes bezüglich der DS18. Ich habe gerade das SearchROM aus der ApplikationNote von Maxim in meinen Code eingebaut funktioniert auch soweit. Aber es gibt doch das prinzipielle Problem das ich die Sensoren nicht unterscheiden kann oder? Woher weiss ich welcher Sensor 1 2 3 usw. ist?
Nein, das geht leider nicht. Daher verwende ich den SearchROM Befehl nie, sondern immer den SkipROM, falls nur 1 Sensor verwendet wird, oder ich gebe die Codes fest ein. Ich habe ein kleiens Programm, das mir den Code des angeschlossenen Sensors über RS232 an den PC sendet. So lese ich bei allen neu gekauften Sensoren den Code aus und beschrifte die Tütchen mit dem Code.
Ganz brauchbare Methode: 1. einen DS18x20 anschliessen 2. alle ROM-Codes auslesen (soweit nur einer) 3. Sensornummer abfrage (UART-Terminal/Tastatur/LCD) 4. ROM-Code ins eeprom ablegen 5. weiteren Sensor anschliessen 6. nochmal Search-ROM, der Code des ersten ist schon im eeprom und bekannt, fuer den neuen weiter mit 3 usw. Ergebnis ist eine Tabelle Sensornummer<->ROM-Code im EEPROM. Methode ist auch ganz praktisch, wenn "im Einsatz" mal ein Sensor ausgetauscht werden muss. Ein neuer ROM-Code wird dann erkannt und dieser dann wieder einer Sensor-Nummer zugewiesen.
Andere Methode: Es wird immer nur ein Sensor gliechzeitig angeschlossen und dem wird dann eine Meßstellennummer zugeordnet, die im EEPROM des Sensors gespeichert wird. Dann der nächste Senosr usw.. Um nun eine bestimmte Meßstelle auszulesen wird solange ROM-Search gemacht, bis die richtige Nummer im EEPROM erkannt wurde. Vorteil: man kann beliebig viele Sensoren anschließen, da ja kein SRAM oder EEPROM des µC belegt wird. Da der EEPROM 2 Byte groß ist, enthält das erste Byte die Meßstelle und das 2. Byte ist ein Prüfwert, ob der Sensor neu ist oder schon zugewiesen wurde. Peter
Hallo, da ich etwas ähnliches wie du vor habe, wollte ich fragen ob du mir den quellcode für die ansteuerung des temperaturs sensors geben könntest. wäre echt nett. weil ich das ding bis morgen zum laufen bringen muss! Danke schon jetzt
Hallo Leute, ich weis, der Thread ist alt! Aber die eigentliche Frage interessiert mich auch und ist nocht nicht geklärt: >Aber wie siehts bei negativen Werten aus? Zuerst Zweierkomlement dann >letztes Bit wegsschneiden und dann mit der Formel berechnen oder liege >ich da falsch? Grüße, Patrick
Hallo Patrick, aus dem Kopf kann ich Dir die Frage nicht beantworten. Ich würde das Rechenverfahren mit allen Beispieldarstellungen im Datenblatt durchrechnen. Damit kannst Du auf einfache Weise deinen Algorithmus auf Funktion testen. Gruß Joachim
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.