Forum: Mikrocontroller und Digitale Elektronik Welchen Temperaturfühler


von Stefan K. (roadrunner1980)


Lesenswert?

Hallo Leute,

für mein Projekt in der Abendschule benötige ich einen Temperatrufühler 
für das Heizregister.

Durch meine Regergen im www. fand ich heraus das der LM75 sehr 
verbreitet ist. Die Ansteruerung soll über I²C-Bus erfolgen, µC 8051 
Familie (Atmel).

Der LM75 hat eine Toleranz von ca. 2°C, ist das nicht etwas ungenau? Hab 
auch noch andere Typen durch meine Suche gefunden:

DS1631, DS1621, Ds18S20

Hat wer Erfahrungen mit diesen Typen?

Ich danke im Voraus für jede Info

mfg. Steve

von Benedikt K. (benedikt)


Lesenswert?

Von der Genauigkeit und vom Rauschen der Messwerte her, sin die DSxxx 
eindeutig die bessere Wahl. Allerdings sind diese meist nur mit dem 
1-wire Interface erhältlich, und das ist vom Timing her etwas kritisch 
(während der Übertragung dürfen keine Interrupts an sein usw.)

von AVRFan (Gast)


Lesenswert?

> und das ist vom Timing her etwas kritisch
> (während der Übertragung dürfen keine Interrupts an sein usw.)

Dann muss man die Interrupts eben sperren für die 600 µs, die ein Bit 
über den 1Wire-Bus braucht, und danach wieder freigeben.  Das ist leicht 
zu bewerkstelligen ("cli"-/"sei"-Befehl).  Problematisch würde es erst 
werden, wenn man noch irgendeinen anderen sehr schnellen Prozess 
parallel laufen lassen muss, der in einem ähnlich kleinen Zeitraster 
bedient werden will.

Das 1Wire-Interface ist nur von der allgemeinen Ansteuerung her etwas 
kniffliger als z. B. SPI; aber da kann man sich ja von entsprechenden 
Routinen aus der Codesammlung inspirieren lassen.

von Peter D. (peda)


Lesenswert?

Benedikt K. wrote:
> Von der Genauigkeit und vom Rauschen der Messwerte her, sin die DSxxx
> eindeutig die bessere Wahl. Allerdings sind diese meist nur mit dem
> 1-wire Interface erhältlich, und das ist vom Timing her etwas kritisch
> (während der Übertragung dürfen keine Interrupts an sein usw.)


Die DSxxxx gibts als 1-Wire, SPI oder I²C, kannst es Dir also aussuchen.


Allerdings haben die 1-Wire-Typen den Vorteil, daß sie wie Transistoren 
aussehen, sind also wesentlich leichter wetterfest in ein Röhrchen zu 
vergießen.
Auch braucht man nur 2 Drähte wo man dann alle Sensoren parallel 
schalten kann.

Ein 1-Wire Bit dauert 60µs, dafür sollte man schon Interrupts sperren 
dürfen.

Man kann natürlich das 1-Wire auch selber mit nem Timerinterrupt machen, 
dem man dann die höhere Priorität zuweist (beim 8051 ja kein Problem).
Ich hab das mal für nen AT89C51CC01 gemacht, für einen Sensor, d.h. ohne 
ROM-Code-Erkennung.
Dann hat man überhaupt keine Warteschleifen, da ja die 60µs bis zum 
nächsten Interrupt dem Main zurückgegeben werden.


Peter

von Stefan K. (roadrunner1980)


Lesenswert?

Hallo Peter,

welchen der oben genannten Fühler soll ich nun nehmen. I²C-Bus sollen 
(müssen) wir nehmen. Ist da mit Problemen zu rechnen die ich bei LM75 
nicht habe? Aja Sprache ist Assembler.

mfg. steve

von vielleicht (Gast)


Lesenswert?

lm335 und i2c ad wandler

von Markus K. (markus-)


Lesenswert?

Hier gibts eine schöne Übersicht:
http://www.mikrocontroller.net/articles/Temperatursensor

von Stefan K. (roadrunner1980)


Lesenswert?

Hallo Markus,
danke für den link

Der LM75 ist der ungenauerste, ich denke der DS1621 ist nicht so 
schlecht?

Nur eines noch was heist der Ausdruck:

Nachteil:
trotzdem die meisten Register non-volatile sind, kann man ihn nicht als 
Stand-Alone-Thermostat einsetzen, da er erst nach einem 
Start-Conversion-Befehl zu messen beginnt.

Kann mir wer das näher erläutern, danke steve

von Markus K. (markus-)


Lesenswert?

Der DS1621 ist ein Thermostat. Er könnte eigentlich auch ohne Prozessor 
arbeiten, weil er sich nämlich seine Einstellungen auch ohne Strom 
merken kann (das ist mit "non-volatile Register" gemeint). Aber nach dem 
Einschalten fängt er nicht von selber mit dem Messen an. Er braucht ein 
Start-Kommando vom Prozessor.

Wenn Ihr aber die Steuerung sowieso auf dem Mikrocontroller machen wollt 
braucht Ihr das ja nicht.

Markus

von Uwe Bonnes (Gast)


Lesenswert?

Falls man einen UART Frei hat, kann man das One Wire Protokoll ganz 
zeitunkritisch ueber den UART implementieren: Atmel Applikation AVR318

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
Noch kein Account? Hier anmelden.