Forum: Mikrocontroller und Digitale Elektronik Temperaturerfassung(Anfänger)


von Michael (Gast)


Lesenswert?

Hallo

Ich habe folgende(s) Problem/Frage:
Der Spannungswert eines Temperatursensor, soll mittels mc ausgewertet
werden, und je nach Temperatur mittels Balkenanzeige(LEDs) dargestellt
werden. Also hohe Temperatur viele LEDs leuchten, niedrige Temp. wenig
LEDs leuchten.

Ein Pluspunkt wäre, den Temperatursensor selbst zu bauen(eine
Brückenschaltung mit PTC Widerstand) da uns aber die Zeit davon läuft,
und mir die Erfassung der Richtigen Temperatur aus der Diagonalspannung
nicht so ganz einleuchtend ist, wollen wir auf einen fertigen Temp.
Sensor zurückgreifen. Unser Lehrer hat in der Aufgabenbeschreibung den
Pt 100 vorgeschlagen. Erfasst werden sollen Temp. zwischen ca. -10 bis
50 Grad Celsius. Messgenauigkeit 1K würde reichen. Ist eurer Meinung
nach der Pt 100 geignet?Andere Vorschläge?Wo bestellt man sowas am
günstigsten im Internet?


Unter folgendem Link hab ich ein Bild unserer Platine, auf die ich mich
bei weiteren Fragen beziehe.
http://www.angeltowns2.com/members/druide/

Was mir nicht so gan einleuchtet, ist:
Zwischen den zwei "Beinchen" des Sensors liegt ja eine Spannung an,
abhängig von der Temp. ist.An einen mc kann man ja(ohne großartig etwas
verändern zu müssen) nur eine spannung zwischen 0V und 5V anlegen. Ist
die Spannung die der Sensor liefert auch in diesem Bereich?
Ein "Beinchen" des Sensors kommt an die Masse, und das andere an den
Ain0 Port(siehe Bild), aber wie kann ich nun mit diesem Wert der da an
Ain0 anliegt arbeiten?wird dieser analog wert automatisch vom mc in
einen digitalwert umgewandelt? wie könnte ich herausfinden welcher
spannungswert welchem hex oder binär wert entspricht?Kann ich den Wert
von Ain0 einfach z.B. in den Akku laden

z.B.  mov acc, Ain0 ??? was muss ich tun, bevor ich mit diesem wert so
arbeiten kann?

Beim Programm an sich, gibt es eigentlich keine Probleme, bis eben auf
die Tatsache, das mir das Argument(der Ain0 Wert) für meine Schleifen
fehlt, in dessen abhängigkeit dann die Leds an oder ausgehen sollen.

Ein großes Problem ist sicherlich, dass ich nicht wirklich gewillt bin
mich in die komplexe Materie der Microcontroller einzuarbeiten, da mir
meine Jahre am ITG gezeigt haben in meinem späteren Berufsleben auf
keinen Fall etwas im Bereich IT zu machen. :). Dazu kommt, das der
Lehrer der "It Hardware" unterrichtet zwar ein netter Mensch, aber
als Pädagoge ziemlich inkompetent ist. Ich weiß, Schüler schieben
schnell die Schuld dem Lehrer zu, aber wenn ein Lehrer ständig von
seinen Schülern korrigiert und verbessert werden muss, ständig sachen
verwechselt und vergisst, dann, naja....


Über Antworten, Anregungen und Aufklärung grober Denkfehler meinerseits
wäre ich sehr dankbar.


Mit freundlichem Gruß

Michael

von bluemole (Gast)


Lesenswert?

Hi Michael,

ich habe sehr gute Erfahrungen mit dem Dallas DS1821 gemacht. Cool am
dem Ding ist der one wire bus. Du brauchst also nur einen Pin von
Deinem Controller opfern.

Sensor kostet ca. 6 €
-55°C bis +125°C     von 0°C bis 85°C Genauigkeit 1°C kann aber erhöht
werden.

Die gemessene Temperatur wird als digit- Wert auf Befehl
rausgesschoben.

MfG bluemole

PS: Falls Du Dich für die Variante entscheiden sollst, kann ich Dir
gerne den Assembler Code für den one wire bus schicken.

von Gerhard Gunzelmann (Gast)


Lesenswert?

Hallo Michael

der PT100 ist ein "Draht", der auf Temperaturänderung so reagiert,
daß sich sein Widerstand verändert. Steigende Temp resultiert in
höheren Widerstand. Der PT100 ist relativ linear, aber die Änderung des
Widerstandes ist arg klein, so daß eine Verstärkung unumgänglich ist,
bevor man den Wert am MC mißt. Der Vorschlag von bluemole ist daher
nicht zu verachten, bzw solltes Du nach Halbleiter-Temperatur-Sensoren
schauen, die bereits eine Spannung liefern.

Gruß
gerhard

von Gerhard Gunzelmann (Gast)


Lesenswert?

Noch was

wenn ich die Schaltung so betrachte: der ATMEL hat ja keinen
AD-Wandler, dafür ist der PCF8591 drauf. Der hat wohl einen I2C-Bus. Du
kommuniziert also über I2C-Schnittstelle, eine serielle Schnittstelle
mit dem Ding. Du mußt mal kucken wo der PCF an deinem MC hängt.

gerhard

von Michael (Gast)


Lesenswert?

Hallo

Danke für die schnellen Antworten.
Der DS1821 scheint wirklich ein guter rat zu sein. :).
Hab mir eben auch mal das Datenblatt von dem Ding runtergeladen,
wodurch ich dann auch erfahren hab was die die einzelnen Bezeichnungen
der Beinchen bedeuten :). DQ - Data Out- Input, das Beinchen müsste
also in meinem Falle an den Ain0 Pin, GND für Ground, also an Masse,
und an VDD sollten 5V Versorgungsspannung. Wenn ich mir das Bildchen
dieses Sensors bei Conrad aber anschaue, kommen mir zweifel ob die
länge der Beinchen zu den jeweiligen anschlüssen am mc reichen. würde
es das Messergebnis verfälschen, wenn man an die Beinchen zur
verlängerung noch ein stück draht lötet. Vermutlich ja nicht, da der
Sensor ja nicht wie die anderen über das Ohmsche Gesetzt funktioniert
und somit der Widerstand der durch den längeren Draht vergrößert wird
egal ist??

@bluemole, fände ich sehr nett, wenn du mir den Assembler Code schicken
könntest, an   Michael.van-Laak@web.de. Du hast doch dann sicherlich
auch eine Tabelle, aus der man erkennt, welchem Temp. Wert welchem bin.
Wert entspricht?

Vielen Dank nochmal

Gruß

Michael

von Stefan Kleinwort (Gast)


Lesenswert?

Bevor Du den DS1821 einplanst, solltest Du nochmal schauen, wo Du ihn
herkriegst. Hier standen in letzter Zeit einige Posts, die verzweifelt
nach einer Liefermöglichkeit gefragt haben.

Es gibt auch Alternativen, z.B. bei National (TL74 ?) oder Microchip
(TC77). Die sond für den SPI-Bus, es gibt aber auch welche für I2C.

Ich würde den verwenden, den ich am besten beikriege.

Stefan

von Michael (Gast)


Lesenswert?

Hallo

Hab direkt nach dem in den Beitrag gepostet hab mal beim Conrad
nachgeschaut ob der den hat und bin auch gleich fündig geworden. Ob der
jetzt auch Verfügbar ist, weiß ich jetzt zwar nicht, denke doch aber
schon.

von Fritz Ganter (Gast)


Lesenswert?

Den DS18S20 gibts nicht, der DS1821 ist bei Conrad verfügbar.

Mal sehen was der Unterschied ist.

von Fritz Ganter (Gast)


Lesenswert?

DS1821S: Er hat nur 1° Auflösung und kann nicht parasitär versorgt
werden.

von bluemole (Gast)


Angehängte Dateien:

Lesenswert?

Angeblich kann man eine höhre Auflösung erreichen. Über die Funktion
High Resulotion Temprature Readings ??? Hab' ich aber noch nicht
ausprobiert.

Im Anhang findest Du/Ihr den Code. Musste ein wenig zusammenschneiden.

Funktioniert aber prima :-)

MFG bluemole

PS: Du kannst natürlich das Beinchen verlänger :-). Eine Leiterbahn ist
auch nichts anderes als ein Stück Draht. Außerdem ist es ein Bus...

von Andreas Wiese (Gast)


Lesenswert?

Hallo,
in der aktuelle Elektor (6/2004) ist ein Zimmerthermometer-Projekt mit
LEDs zur Anzeige, allerdings ohne MC.
Hier kommt der Temperatursensor MAX 6610/6611 zum Einsatz, der liefert
10 bzw. 16 mV pro Grad.
Kann dir aber nicht sagen, was der kostet, aber ist dann einfach per
A/D-Wandler auszuwerten, falls euer Lehrer da Wert drauf legt.
Sparst du dir immerhin die Brückenschaltung

Gruß
Andreas

von Rahul (Gast)


Lesenswert?

oder einen UAA180...
LM3914 macht zwar keine LED-Reihe, sondern nur einen einzelnen Punkt,
aber bei 10 LEDs wäre die Auflösung auch nicht wirklich richtig groß.
Allerdings lassen die sich kaskadieren.
Zur Brückenschaltung:
Die Spannungen an den beiden Endpunkten der Diagonalen mit
Impedanzwandlern (um die Messbrücke nicht zu belasten) auskoppeln, auf
einen Differenz- bzw. Subtrahierverstärker geben und schon hat man eine
nette Analogspannung, die man dem AD-Wandler zur Verfügung stellen
kann.
Euer Lehrer würde das bestimmt besser finden als einen einzelnen
DS1820/21...
Übrigens besteht ein Pt100 nicht nur aus einem Draht, sondern aus zwei.
Es wird nämlich die Elektronenspannung zwischen 2 Metallen (u.a. Platin
= Pt) gemessen, die in diesem Fall temperaturabhängig ist.
Gruß Rahul

von Andreas Wiese (Gast)


Lesenswert?

@ Rahul
Du verwechselst da den PT100 mit einem Thermoelement. Beim
Thermoelement wird eine Thermospannung zwischen zwei unterschiedlichen
Metallen gemessen, der PT100 ist jedoch wie Gerhard richtig beschrieben
hat ein passiver Widerstandthermometer, der normalerweise per
Brückenschaltung ausgewertet wird.

Für beide Verfahren braucht man normalerweise noch eine
Verstärkerschaltung wobei bei Thermoelementen spezielle Bausteine
benötigt werden, die eine elektronische Nullpunkterzeugung haben, da
Thermoelemente normalerweise eine Vergleichstelle mit bekannter
Temperatur brauchen. Diese Variante dürfte für dich allerdings zu
aufwändig sein.

Also Brückenschaltung mit PT100 oder PT1000 oder einen Max 6610 oder
auch LM335 (Reichelt 1,10 EUR), die 10mV pro Kelvin ausgeben, das
reicht für deine geforderte Auflösung ohne Verstärker, wenn es nicht
der ganz digitale Weg per DS1820 sein soll.

Gruß
Andreas

von Thorsten (Gast)


Lesenswert?

@Michael
schau doch mal hier vorbei.

http://www.citruspage.de/homepage/tempsen.html

Und wenn ich wüsste wie man das ganze als Link speichern kann hätte ich
das auch noch gemacht :-)

Gruß
Thorsten

von Mathias (Gast)


Lesenswert?

Hi,
könntest du mir das Assemblerprogramm für den DS1821 bitte per E-Mail 
schicken? Wäre dir sehr dankbar.

Gruß
Mathias

von Mathias (Gast)


Lesenswert?

Sorry Doppelpost, habe das Forensystem erst jetzt verstanden.

@bluemole: könntest du mir das von dir im zweiten Beitrag erwähnte 
Assemblerprogramm für den DS1821 bitte per E-Mail schicken? Wäre dir 
sehr dankbar.

E-Mail Adresse ist: ernst.jaentsch@t-online.de

Gruß
Mathias

von Peter D. (peda)


Lesenswert?

Michael wrote:

> Der Spannungswert eines Temperatursensor, soll mittels mc ausgewertet
> werden, und je nach Temperatur mittels Balkenanzeige(LEDs) dargestellt
> werden.
...
> Pt 100 vorgeschlagen. Erfasst werden sollen Temp. zwischen ca. -10 bis
> 50 Grad Celsius. Messgenauigkeit 1K würde reichen.


Das macht dann also genau 61 LEDs.


Peter

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.