Mikrocontroller Startseite >> [AVR Peripherie] >> Temperatursensor DS1820 >> [1wire BASCOM]


1wire Temperatursensor DS1820

Der DS1820 ist ein bereits geeichter Temperatursensor mit einem Messbereich von -10°C bis 85°C mit einer Genauigkeit von +/-0,5°C. Ich nehme an das aus diesem Grund die Temperatur auch nur in 0,5°C Schritten direkt aus den Registern ausgelesen werden kann. Für relative Temperaturänderungen läßt sich die Temperatur aber auch genauer ermitteln, in dem man die beiden Register des AD-Wandlers nutzt ('COUNT REMAIN' und 'COUNT PER °C').

Der aktuelle Nachfolger des DS1820 ist der DS18S20 und dann gibt es noch den DS18B20 der unterschied zum DS18S20 ist der das man hier den Temperaturwert mit 12 Bit auslesen kann. Man spart sich also das Rechnen für einen höhere Genauigkeit, die Temperatur wird direkt in 0,125 Grad Schritten ausgegeben. Ich möchte mich im Weiteren auf den DS1820 bzw. DS18S20 beziehen.

Der DS1820 hat einen internen Speicher von 9 Byte das SCRATCHPAD. Dabei beinhlten dir ersten beiden Byte die Temperatur (nach einer Messung) mit einer 9 Bit Auflösung. Das letzte und 9te Byte ist die Prüfsumme (CRC). Interessant sind dann noch die Byte 7 und 8 das 'COUNT REMAIN' und 'COUNT PER °C' Register, mit denen sich einen genauere Temperaturauflösung berechen lässt.

Die Formel für die Temperaturberechnung lautet nach Datenblatt:

TEMPERATURE = TEMP_READ - 0,25 + ((COUNT_PER_C - COUNT_REMAIN)/COUNT_PER_C)

Die Umsetzung dazu kann man sich am Besten aus den Programm Beispielen erarbeiten bzw. aneignen. Zu mindest geht es mir so das ich vieles besser an einem praktischen Beispiel verstehe.



Die wichtigsten DS1820 Kommandos:

044HMessung veranlassen, kann bei 2 Draht Betrieb bis zu 750ms dauern
0BEHScratchpad lesen
0B4HStromversorgung ermitteln passiv/aktiv, also 2Draht/3Draht


[Impressum] [Kontakt] [Links] [Home]
© 04.12.2007 Hans-Jürgen Jacob (Pirna)