PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PT100 anschließen



Pinky
12.07.05, 18:35
Hallo,
ich habe hier 4 PT100 Sensoren die von einer Solaranlage und Kessel weggehen. Diese möchte ich nun an einen LinuxPC anschließen und die entsprechende Software schreiben. Momentan habe ich aber noch ein paar Fragen:

1. Wie und wo schließe ich die Sensoren an ? Ich habe mal eine Schaltung gesehen, wo NTC Sensoren am Gameport anschlossen werden.

2. Wie lese Spannung in der Software aus ?

MfG
Michi

baumgartner
13.07.05, 10:48
da gibts hier nen thread zu irgendeinem watchdog
http://www.linuxforen.de/forums/showthread.php?t=181698&highlight=watchdog

mfg baumi

Pinky
13.07.05, 14:01
is zwar nett von dir gemeint, aber leider passt der Link nicht zu meinem Thema. :o

baumgartner
13.07.05, 14:32
07.05.05, 14:17 #6


bei mehreren sensoren bist du wahrscheinlich noch günstiger und besser beraten wenn du mit pt10 sensoren einen multivibrator aufbaust, diesen mit einem pic oder nem µC ausliest (zur temperaturbestimmung ist dann ein bissi mathe gefragt) und dieses dann über die serielle verschickst ( jetzt brauchst ledeglich nen max232), dass ist einfach und der verdrahtungsaufwand ist ziemlich gering. Am Pc lässt sich dieses dann schnell mit nem C Prog auswerten.

mfg Baumi

jacusy
15.07.05, 18:05
Mich würde die Sache mit dem Multivibrator interessieren. Was macht man da?

Ich kenn mich mit den Atmel-uC ganz gut aus, aber bisher hab ich immer einen Widerstand mit Sensor in Serie genommen und dann aus dem Spannungsabfall und dem A/D-Wandler die Temperatur berechnet. Geht das besser?

baumgartner
15.07.05, 18:31
naja, im prinzip ist es einfacher, und hat den Vorteil präziser zu sein. (und du brauchst keinen D/A wandler)

also du baust irgendeinen Schwingkreis auf (Wiederstand, pt100 und ein C ) und erhältst dadurch ein rechtecksignal. wenn sich jetzt der wiederstand des sensors ändert sich der (ent) lade strom und dadurch die zeit bis der kondesator ent oder geladen wird. mit dem programm misst du dann die zeiten und berechnest ........(ich denke das kannst du dir denken :) )

ich hab das mal in der schule gemacht, das waren 3-4std arbeit, allerdings nahmen wir da keinen multivib sondern einen ne555 (ein taktgenerator)

E S
15.07.05, 22:19
Hi,

der Gameport ist nur ein Schätzeisen. Klemm da mal ein Poti an oder einen alten Joystick ohne "Verbesserungselektronik". Der Wert springt sehr wild.

Ein Pulsgenerator macht aus der analogen Spannungsgröße eine Frequenz. und die ist sehr einfach einzulesen. Man baut also einen rechteckgenerator, dessen Frequenz vom PT100 abhängt.
Auch hier gibt es zwei Arten. Einmal wird nur die Frequenz geändert. Das ist ziemlich aufwändig. leichter ist eine PWM. Dabei ist die Frequenz fest vorgegeben und die Pulslänge ändert sich.
Für eine PWM braucht man einen Dreieckgenerator. Das Dreiecksignal vergleicht man mit einem komparator (OPV) mit der Eingangsspannung. Ist die Dreieckspannung geringer als die zu messende Spannung, schaltet der Ausgang des Komparators auf HIGH.
Misst der PC die Frequenz des Signals (Pulsanfang bis nächster Pulsanfang) und die Pulslänge, so hat man das Verhältnis und das ist ein proportionales Maß für die Eingangsspannung. Dabei spielt die Frequenzänderung durch Temperaturdrift des Dreieckgenerators keine Rolle, da man das Verhältnis Pulslänge zu Frequenz misst und das bleibt immer gleich, egal wie die Frequenz gewandert ist.

Noch besser ist ein fertiger A/D Wandler. Die gibt es mit I²C Bus. Man kann mehrere Busse an den Parport anschließen und separat oder zusammen bedienen. An jedem Bus kann man mehrere Chips anschliessen. Die meisten Chips haben Adresseingänge. Normalerweise kann man 2 oder 4 Gleichartige Chips in den selben Bus einbinden und so viele verschiedene Arten wie man will. So kann man für jeden Sensor einen eigenen A/D spendieren und braucht keinen Multiplexer.

Möchtest Du es ganz bequem, dann hol Dir das Meßmodul "M232" von ELV. Das kostet etwa 25 Euro und bietet:
6 Analogeingänge
8 Digital I/O Leitungen
1 Impulszähler am 8. I/O Pin.

Es wird an eine Serielle Schnittstelle angeschlossen und überwiegend in ASCII Klartext gesteuert und abgefragt. Dadurch wird die Programmierung sehr leicht und man muß nicht an den I/O Registern irgendwelcher Schnittstellen fummeln. Dadurch braucht man auch nicht zwingend Root-Rechte.

Die Programmierung ist ganz einfach.
Sendet man beispielsweise ein M und eine Zahl, so werden die A/D Eingänge vom M232 eingelesen. Man steuert damit wann genau der Meßwert genommen wird. "M4" bedeutet "Eingänge 0-4 abfragen". Bei "M6" macht er schnell wandlungen hintereinander und der letzte gemessene Wert wird beim abfragen gesendet. Hier hat man keine Kontrolle des Zeitpunktes, ist aber fürm die meisten Anwendungen ausreichend.
Sendet man "a0", so bekommt man als Antwort den HEX-Wert der Spannung des ersten Analogeinganges. Auch verrät es, ob man den Wert schon mal eingelesen hatte, die neue A/D Wandlung noch nicht abgeschlossen wurde.

Auflösung der 6 A/Ds beträgt stolze 10 bit.
Eingangsspannung muss aber zwischen 0 und 5V liegen, gegebenenfalls muss man mit einem OPV auf diesen Eingangsbereich verstärken um maximale Auflösung zu erhalten. Eine Symetrische Versorgungsspannung für OPVs stellt das Modul bereit.

Gruß
Elmar

jacusy
15.07.05, 22:55
Super Zusammenfassung, dank dir!

Gibts da irgendwo eine Internetquelle, am besten mit Schaltplan für den Frequenzgenerator? Würde das glaub sehr gern in eines meiner Projekte erklären, dabei sollen dann bis zu 8 Sensoren abgefragt werden, allerdings muss ich das mit einem Atmel machen (weil die Platine schon fertig is)

Grüße
jacusy

nobody0
16.07.05, 10:00
Ich habe mal einen Treiber zu einem billigen Digitalmultimeter (VC820 von Conrad, 49,95 EUR mit allem Zubehör) am Seriellen Port/USB-RS232-Adapter gemacht (genauer: überarbeitet), mit dem man unter anderem auch über den Widerstand die Temperatur messen kann:

http://www.mikrocontroller.net/forum/read-4-138973.html#new

Mit Gnuplot kann man sich die Temperatur auch in Echtzeit plotten lassen.

E S
16.07.05, 12:56
Hi,

ein Dreieckgenerator ist ein Rechteckgeneratore (sehr einfach herzustellen) mit nachgeschaltetem Integrator. Man kann das Rechteck auch vom PC herstellen lassen oder von einem µC.

Schaltungen zum "Dreieckgenerator" gibt es wie sand am Meer. Einfach den Begriff in Google eingeben:
http://www.umnicom.de/Elektronik/Schaltungssammlung/Funktion/Dreieck/Dreieck.html


Gruß
Elmar

jacusy
16.07.05, 13:24
Also würde ich beispielsweise in
http://www.umnicom.de/Elektronik/Schaltungssammlung/Funktion/Dreieck/Dreieck.html
für R1 den Sensor anschließen (damit hängt die Frequenz von der Temperatur ab) und an den Dreiecksgenerator einen Differenzierer dran machen (die Ableitung einer geraden ist konstant <-> kein Integrator ;) ).

Dieses Rechtecksignal messe ich dann mit einem uC, und zwar die Länge des Impulses und die Frequenz. Daraus kann ich dann (angeblich) den Widerstand R1 berechnen.

Hab ich soweit alles richtig verstanden?

Grüße
jacusy

E S
16.07.05, 13:38
Hi,

das ist nicht der Sinnd er Sache! Warum Rechteck nach Dreieck machen um es wieder in ein rechteck zu machen. Und dann wandert das Ding auch noch durch Temperaturdrift!

Also zum mitlesen:
* Rechteck mit FESTER Frequenz erzeugen.
* Daraus dann einen festen Dreieck. Und das macht man mit einem Integrator. Rechteck integriert macht Dreieck.

Und die Dreieckspannung vergleicht man per komparator mit dem Eingangssignal aus dem PT100. Dadurch einsteht eine PWM. Misst man die Frequenz der PWM, so hat man die Frequenz des Rechteckgenerators. Seine Frequenz darf wandern, der PC kriegt das ja mit. Dann misst man die Pulslänge der PWM. Aus Pulslänge und Frequenz hat man das Verhältnis Puls zu Frequenz. Und das ist ein Maß der Eingangsspannung, die wiederum aus dem PT100 gewonnen wird. Dadurch eliminiert man die Temperaturdrift und Bauteiletoleranzen des Rechteckgenerators und erhält die Temperatur sehr genau.

Gruß
Elmar

jacusy
16.07.05, 16:01
Ok, jetzt habs sogar ich verstanden ^^

nobody0
16.07.05, 17:23
Das funktioniert nur brauchbar, wenn die Versorgungsspannung und Kapazität nicht schwankt, also sich auch mit der Temperatur nicht ändert.
Genauer geht es mit einer Meß-Brücke (zwei Widerstandsteiler: einer mit dem Sensor, einer mit konstantem Widerstand) mit 0,1 %-Widerständen und Relativmessung der Spannung am Sensor. Dadurch fallen Versorgungsspannungs-Schwankungen ebenso raus wie Schwankungen der Referenzspannung.

E S
16.07.05, 20:40
Hi,

das funktioniert auch so brauchbar. Wenn um 0,1°C oder Besser Genauigkeit ankommt, dann muss man stärkere Maßnahmen ergreifen. Für den Hausgebrauch langt es so völlig.

Nebenbei gesagt:
Heutzutage sind solche Schaltungen in der Regel extrem schrottig aufgebaut, man kompensiert die Abweichungen per Software. hauptsache, es geht immer gleich falsch.

Ach ja, es gibt auch Temperatursensoren mit I²C Anschluß. Da braucht man keine zusätzliche Hardware um die auszuwerten. Leider funktionierten die nur bei geringen Temperaturen. Ab 70°C muß man PT100 o.ä. verwenden. Es gibt sogar Auswerteboxen zu kaufen an die man einfach einen beliebigen PT100 anklemmt und die kann man über Ethernet abfragen. Sind ab 100 Euro zu haben :D

Gruß
Elmar

nobody0
16.07.05, 23:33
Um etwas mit Software machen zu können, muß man aber Kalibrieren, also dem Sensor eine genaue Temperatur geben. Ansonsten kann man gegen die Streuung nichts machen.
Allerdings zeigt sich da bei den Bossen häufig ein Realitäts-Verlust; einer wollte mit einem billigen Sensor, bei dem schon der Hersteller +-2°C angibt (wobei durch die Auswerte-Schaltung +Alterung noch etwas draufkommt), ohne Kalibrieren 0,2°C Genauigkeit haben, also ein zehntel der realistischen Genauigkeit; ähnliches hatte ich auch schon für die Uhr-Genauigkeit.
Naja, solange keiner nachmißt, kann man die Leute ja im Glauben lassen, daß es hinkommt; notfalls argumentiert man einfach damit, daß Temperatur und Zeit relativ sind; im richtigen Inertialsystem stimmt der Wert schon ...

javafreak
17.07.05, 01:10
und was spricht gegen einfache viertelmessbrücken (braucht einen pt-100 und drei wiederstände) und digitalisierung der diagonalspannung?

nobody0
17.07.05, 12:54
Das meine ich doch. Aber damit sich die Versorungsspannung aus den Gleichungen herauskürzt, muß man zwei Spannungen messen; eine reicht nicht.
Da die AD-Wandler aber ihre Masse ohnehin auf GND haben, muß man das bei einer Diagonal-Messung sowieso machen.