Hallo Gerhard & Heribert,
Der Abgleich ist sogar noch in wenig einfacher. So gleiche ich die Meßadapter ab: Dazu benötigt man nur einen 2k Trimmer. Zuerst stelle ich am Trimmer den Widertstand für den unteren Grenzwert ein. z.B. bei -40°C 842,7 Ohm (mein Multimeter ist so genau :-) ) Nun wird der Meßadapter mit dem Offset auf 0,0000V abgeglichen. Danach wird am Trimmer der Wert für den oberen Grenzwert eingestellt. z.B. +200°C 1758,4 Ohm. Jetzt wird mit der Steigung der Meßadpter auf 4,092 V abgeglichen.
Beim CC2-ReglerBoard geht das Ganze etwas anders, da genauer:
Zuerst der Offsetabgleich, bis die Spannung > 0,0V ist. Dann die Unit draufstecken und mit einem Testproggie die AD-Werte anzeigen lassen. Nun mit dem Offset einen Nullabgleich machen, bis der AD-Wert von 0 hin und wieder noch auf 1 schwankt (bzw. bei rbports.c2 der AD-Wert zwischen 0 und 8 is). Danach wird mit dem oberen Grenzwert die Steigung abgeglichen, bis der AD-Wert bei 1023 angekommen ist und noch hin und wieder zu 1022 schwankt. (bei rbports.c2 AD-Wert zw. 10222 und 10230)
Das Auswerten in der Software ist ganz einfach:
function getPT(int x) returns int // Für CC2-ReglerBoard , x=0 bis 10230 {long y; y=x; y=(y*Meßbereich)/1023 - Offset; return y;//Rückgabe in 0,1°C }
Meßbereich ist hier der Meßbereich in K, also bei -40 bis +250°C wären dies 290K. Und Offset ist für den neg Temperaturbereich, also bei -40°C wären diese 400 (in 0,1K)
Da der PT1000 bei größeren Meßbereichen auch nicht ganz linear ist, muß man die Auswertung splitten.(Das espart komplizierte Formeln :-) ) So mache ich dies: (Meßbereich von -30°C bis 275°C) Ich suche mir mehrere Meßpunkte aus und bestimme zu den Temperaturen die AD-Werte. Bei mir waren dies: +200°C = 7800 +140°C = 5810 + 90°C = 4130 0°C = 1030 - 30°C = 0
function getPT(int x) returns int {long y; y=x; if x>=7800 y=((y-7800)*75)/243 +2000; else if x>=5810 y=((y-5810)*60)/199 +1400; else if x>=4130 y=((y-4130)*50)/150 + 900; else if x>=1030 y=((y-1030)*90)/310; else y=(y*30)/103 - 300; if x==0 y=-32000; // Fühler Kurzschluß if x==10230 y=-31000; // Fühler unterbrochen return y; } Zusätzlich hab ich noch eine Erkennug für Fühler-Kurzschluß/-Bruch.
MfG André H.
PS: Falls jemand wissen will, was meine Analge gerade macht, hier ein kleines Bild. das Proggie ist aber noch im Aufbau

|