Hallo André,
ich habe mal den Abgleich gemacht so wie du ihn beschrieben hast. Offset auf 0 ist kein Problem nur die Steigung geht nur bis 9440 woran liegt das. Hmm sieht so aus als würde 4,092 V nicht ereicht.
Mfg
Heribert
> 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: > > > {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 > >
|