www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Welchen Temperaturfühler


Autor: Stefan Krytinar (roadrunner1980)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.)

Autor: AVRFan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan Krytinar (roadrunner1980)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: vielleicht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lm335 und i2c ad wandler

Autor: Markus K. (markus-)
Datum:

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

Autor: Stefan Krytinar (roadrunner1980)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Markus K. (markus-)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Uwe Bonnes (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.