DS18S20

Gast #150975
Lesenswert?

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
Gast #150979
Lesenswert?

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.
Gast #150980
Lesenswert?

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?
Gast #150981
Lesenswert?

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.
Gast #150982
Lesenswert?

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.
#150983
Lesenswert?

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
Gast #150984
Lesenswert?

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
Gast #1011844
Lesenswert?

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
Gast #1012021
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren