
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hi, > ich wollte mal den Temperatursensor verwenden der bei der CC1 Station im Lieferumfang enthalten ist. > Wie komme ich nun von den Werten die der AD Wandler ausgibt zu einer möglichst genauen Temperatur? Ich habe mir mal selbst eine Formel abgeleitet aufgrund der folgenden Annahmen / Gegegebenheiten: - Der Wertebereich umfasst 0 bis 255 =256 Messwerte - Der Temperaturbereich umfasst -25°C bis 102,5° C, Auflösung 0,5° C - Die Auflösung ist linear Damit werden (102,5 - (-25)) / 0.5 + 1 == 256 Messpunkte auf 256 Messwerte abgebildet. ==> passt Ich brauch nun also eine Geradengleichung y = ax + b, mit x = Messwert und y = Temperatur Da das ganze linear ist, kann ich mir zwei beliebige Messpunkte herausgreifen, z. B. x = 0 ==> y=-25 und x=255 ==> y=102.5 Damit komme ich auf y = x / 2 -25, was mathematisch natürlich auch y = (x - 50) / 2 entspricht Nun kann aber das C-Control-Basic keine Kommazahlen, also multipliziere ich zunächst mal mit 10. Das muss dann für die Anzeige aber wieder runtergebrochen werden, wobei die Temperatur für die Anzeige nur einmal abgefragt werden darf, falls sich der Wert während der Anzeige verändert, und damit komme ich auf define T2 AD[6] ' Temperatursensor 2 define tempVar byte tempVar = temp2'() print "T2 = "; tempVar / 10; ","; tempVar mod 10; end #temp2 return (t2 * 10) / 2 - 250 > Bei 23,5 °C laut einem Zimmerthermometer komme ich da auf 26,5 °C. Und die Zimmertemperatur ist wie gemessen? Wenn beide Thermometer eine Genauigkeit von nur +/- 1°C haben, bist Du bei beide Male richtig gemessener Temperatur schon fast bei Deiner Anzeigedifferenz. Bye Achim |
| Antwort schreiben |