PT1000 mit DS2450 Messen

Hallo harry,

ich habe PT1000 an den Vor und Rücklauf der Solaranlage geklemmt , in Reihe dazu einen 1kOhm Widerstand gegen GND und dazwischen den Eingang des DS2450. Die Leitungswiderstände ignoriere ich dabei und damit messe ich die Temperaturen für meine Zwecke genau genug.
Als Formel dient mir das hier:

$Vges = GetValue(45739 /*[1-Wire\SolarBoard\Lichtsensor\VDD]*/);
$V = $IPS_VALUE * 0.0000688; // 16bit DS2450  0.00006922
$R = $V /($Vges - $V)*999;
$t = (($R/1000 - 1)*(255.8723+($R/1000 - 1)*(9.6+($R/1000 - 1)*0.878)));

Gruß

Hallo Harry,

per PT1000 kannst du sehr gut einen Solarkollektor abnehmen. Halbleitersensoren wie die DS18x20 Sensoren sind hier nicht geeignet, da diese nach Überschreiten der Sperrschichttemperatur, wie ein normaler Transistor, einfach kaputt gehen. Nachdem es kein passendes Modul für 1-Wire gibt, hab ich einen entsprechenden Messwandler für 1-Wire entwickelt.
Hier findest du den Messwandler für den Temperaturbereich von 0-200°C.

Grüße

andrge

Hallo,

also den fertigen Messwandler finde ich etwas zu teuer (dafür bekomme ich ja fast schon eine komplette billige Solarsteuerung).

Attain sieht deine Schaltung so wie die in meinem Anhang aus? Nutzt du 5V? Zur Bedeutung deiner Variablen:
$Vges = Gesamtspannung gelesen von VCC in meiner Zeichnung
$V = Spannung am analogen Eingang
$R = Widerstand des Sensors (Warum ist heir in der Glecihung 999 und nicht 1000?)
$t = Temperatur

Ist das soweit richtig?

Grüße

Harry

schaltung.jpg

Hallo Harry,

soweit alles richtig.

weiß ich nicht mehr so genau.Ich glaube das habe ich nachgemessen. Auch war die ermittelte Spannung nicht die, die rechnerisch rauskommen müßte, deswegen die Anpassung in der Zeile $V.

Gruß

Ich hole mal diesen alten Thread aus der Versenkung…

Ich muss auch einen PT100 Sensor 1-wire fähig machen. Der Sensor ist fest verbaut, daher habe ich keine Alternative auf andere Temperatursensoren zurück zu greifen.

Ich habe den Sensor, wie dharry skizziert, angeschlossen, jedoch mit einem 5k Ohm Widerstand. Den Eingang des DS2450 habe ich auf 16-bit und 2,55V eingestellt. Die Umrechnung erledige ich folgendermaßen:


<?

$Vges = GetValue(12315 /*[1-wire\DS2450 A/D Wandler\VDD]*/ );
echo " Vges: ".$Vges;

$V = GetValue(39393 /*[1-wire\DS2450 A/D Wandler\Status Port 0]*/) *(0.000078/2); // Umrechnung 16bit DS2450  
echo "       V: ".$V;

$R = $V /($Vges - $V)*5000; //Widerstandswert des PT100 ermitteln
echo "       R: ".$R;

$t = ($R - 100)/(0.00385*100); //Umrechnung PT100
echo "       T: ".$t;

SetValue(27273 /*[Temperatur]*/ ,$t);
 
?>

Gibt folgende Ausgabe:


Vges: 4.9699997901917       V: 1.277757       R: 1730.3263525821       T: 4234.6139028107

Die Werte für Vges und V stimmen. Der Widerstand kann natürlich unmöglich sein. Irgendwo habe ich hier einen Denkfehler, vielleicht kann mir hier jemand helfen?

Danke schonmal!

U=5V
Rges =~5100 Ohm
Iges = 5V/5100
Urvor = Iges*5000 Ohm

Deine Messung kann am 5kOhm nicht 1,2 Volt sein.

Der Spannungsabfall am Widerstand muß den größten Anteil der Spannung haben…

Dreh mal die Reihenfolge der Widerstände um, oder das ist Dein Fehler, dass die Reihenfolge 5V–PT100-5kOhm–GND nicht so ist.

Gruß Helmut

ok, hatte die Reihenfolge mal testweise geändert und nicht zurück geändert. Neue Ausgabe:


 Vges: 4.9699997901917       V: 3.729882       R: 15038.418243414       T: 38801.086346529

Aber so richtig weiter bringt mich das jetzt auch noch nicht…

Das Verhältnis 5000 zu ~100 muß sich in den Spannungen wiederspiegeln.

Ich könnte mir vorstellen, dass eine Widerstandsmessung andere Werte hervor bringt.

Deine gemessenen Spannungswerte passen nicht zu 5000 Ohm und 100 Ohm…

Mess doch mal mit einem Multimeter die Widerstände einzeln aus.

Nachtrag: Du hast 2,5V als Ref und bekommst 3,72… Volt ???
Gruß Helmut

so, ich habe gestern eine Menge rumprobiert und musste mich jetzt erstmal ein bisschen sortieren (hätte ich vielleicht mal machen sollen, bevor ich hier frage…)

also ich habe (jetzt) einen 4,7k Widerstand „hinter“ den PT100 geschaltet und messe die Spannung V zwischen Widerstand und PT100. Den Port des DS2450 habe ich wieder auf 5,10V hochgestellt (16-Bit).

5V ----- PT100 ----- (Anschluss DS2450, Port 0) ------- 4,7k ------ GND



$Vges = GetValue(12315 /*[1-wire\DS2450 A/D Wandler\VDD]*/ );
echo " Vges: ".$Vges;

$V = GetValue(39393 /*[1-wire\DS2450 A/D Wandler\Status Port 0]*/) *(0.000078); // 16bit DS2450
echo "       V: ".$V;

$R = $V /($Vges - $V)*4700;
echo "       R: ".$R;

$t = ($R - 100)/(0.00385*100);
echo "       T: ".$t;

SetValue(27273 /*[1-wire\Temp]*/ ,$t);


Ausgabe:


 Vges: 4.9699997901917       V: 4.885764       R: 272604.91944998       T: 707804.98558436

Per Multimeter messe ich die gleichen Spannungen und bei nicht angelegter Spannung auch die richtigen Widerstände (4,7k und ca. 112).

Sorry, für das Durcheinander…

Meine Rechnung für die Werte sehen so aus:

$Vpt100 = $Vges - $V;
echo "       Vpt100= ".$Vpt100;

$Iges = $V / 4700 ;
echo "      Iges= ". $Iges ;

$R = $Vpt100 / $Iges;
echo "       R= ".$R;

Ich würde mal vorschlagen Du drehst die Widerstände, nimmst Uref wieder auf 2,5V

Dann müßte die Rechnung aber angepasst werden

$Vpt100 bekommst Du dann genauer,

$Iges ist dann ($Vges-$Uvt100) / 4700

$Rvt100 ist dann $Vpt100 / $Iges

Versuch das mal.
Gruß Helmut

PS: der 4700 Widerstand sollte dann genauer ausgemessen werden um etwas genauer zu rechnen.

Hallo,

ein Anmerkung zur Messung.
Bei Messumformer für PT Elemente wird ein Strom (glaube 1mA, damit sich das Element nicht zur sehr erwärmt) durch das Element getrieben.

Der Spannungsabfall am PT wird hochohmig gemessen, somit lässt sich die Messung sehr genau durchführen.

Natürlich ist der Schaltungsaufwand höher, aber wie ich Helmut kenne findet er bestimmt eine einfache Lösung…-)

Gruss Christian

Edit. http://www.mikrocontroller.net/attachment/2598/PT100-Messwertverst_er.pdf

Hallo Christian,
ich pers. würde in einem 1Wire-Netzwerk den DS18B20 nehmen.

Auch Der erwärmt sich, meine Empfehlung, wenn er nicht sowieso an etwas Rohr anliegt, ein Stück Metall als Wärmespeicher.

Die Schaltung ist auch in einem Schaltungsbeispiel von hier für einen PT1000 zu finden, geht auch oder einen FET als Konstantstromquelle.

Aber der Thema-Schreiber hatte nicht wissen wollen, was es alles so gibt. :wink:

Gruß Helmut

ok, dann will ich nichts gesagt haben… -)

Ich wollte Dich nicht zurechtweisen, verzeih mir. Sollte nicht so rüberkommen.

Ich hoffe hmeier bekommt es hin.

Gruß Helmut

So, ich habe jetzt die Widerstände gedreht und alles wie beschrieben verschaltet. Leider war meine Temperatur jedoch zu hoch, was ich in folgendem Schritt korrigiert habe:


$V = GetValue(39393 /*[1-wire\DS2450 A/D Wandler\Status Port 0]*/) *(0.000069/2);

Im Prinzip wird mir jetzt die Temperatur richtig angezeigt, allerdings schwankt diese sehr.

bei ca. 25 Raumtemperatur wird gemessen 24,3/24,7/24,9/25,2/25/25,6…

Deshalb habe ich jetzt schon den Durchschnittswert der letzten Messungen genommen, was zwar schon zu einer Glättung geführt hat, aber so richtig perfekt ist es noch nicht…

Trotzdem schonmal danke für die Mithilfe!

Naja, ist doch schonmal was.

Ein Stützkondensator am DS2450 und einen am PT100 könnten auch noch beruhigen.

Aber die Zahlen von oben zeigen eher, dass er sich erwärmt.

Gruß Helmut

Eigenartigerweise geht die Tendenz mal nach oben, mal nach unten, da lässt sich keine Regelmäßigkeit finden…

Welche Kondensatoren würdest du empfehlen?

Stützkondensatoren 100nF Kerko oä am DS, 1µF Tantal am PT100, aber ein Wärmespeicher am PT100 müßte schon genügen.
Wenn nicht, stimmt was nicht an der Betriebsspannung zB ist ein Schaltnetzteil nicht immer gut.

Gruß Helmut

Na so habe ich es auch nicht verstanden.

Ich wollte nur eine andere (evtl. bessere) Möglichkeit aufzeigen, die vermutlich (Temperatur) stabiler funktioniert.

Ich selber benutze auch die DS1820 (zZ. 37Stck.), suche aber noch eine Lösung für die Temperaturmessung am Kamin (>150 Grad).

Gruß
Christian

Ja, dafür ist der PT100(0) ja auch super.

Dann bietet sich aber zur besseren Auflösung ein OP an, da Du ja auch gern mal einen Löterich benutzt :wink:

Gruß Helmut