jetzt erhalte ich bei b1 den Wert 13 und bei b2 einen 3 stelligen Wert, beide steigen bzw verändern sich bei Temperatur Änderungen, die Werte haben aber nichts mit der realen Temperatur zu tun.
Das höchste bit ist 0 (OK) oder 1 (Fehler) und wird wie das letzte Bit (für die Temperatur) ignoriert (Auswerten würde ich das erste Bit aber schon ):
temp = (temp &0x7FFE);
Die 14 Bit die nun in temp stehen sind die "Temperaturdaten".
Letzte Tabelle "Ausgangsskalierung PT1000 Temperatur"
je nach Sensor (R1-R3): T(°C)=V/256-32 bzw. T(°C)=V/128-32 bzw. T(°C)=V/64-32
mmh sorry wenn ich so doof Frage
aber wie kommst Du auf diesen Wert?
mir ist schon klar das sich die richtige temperatur versteckt????
Ich beschäftige mich halt erst seit ein paar Monaten in meiner Freizeit mit Micrcontrolern und habe da wenig Vorbildung und mir bisher alles angelesen oder hier mitgelesen
Mit folgender Formel:
b1 << 8 , das entspricht der Multiplikation mit 256, also 14256
das ganze plus b2, also + 46
Dann die Formel aus dem Datenblatt für den Sensor R3 (ist geraten, denn hier passt der Wert zum gemessenen Wert)
V/64 - 32
das entspricht dann:
(14256+46)/64-32 = 24,71875 ~ 24,72°C
Nur eine kurze Antwort, da ich jetzt malochen muss, aber mkl0815 hat es schon richtig beschrieben.
Mein Code sieht so aus:
int temp;
int b1=14;
int b2=46;
void setup() {
Serial.begin(115200);
byte error = (b1 >> 7);
if (error == 1) {
Serial.println("Es ist ein Fehler aufgetreten!");
} else {
temp = b1 << 8 | b2;
temp = temp &0x3FFE;
float temperatur = temp / 64.0 - 32.0;
Serial.print("Die Temperatur betr");
Serial.write(228);
Serial.print("gt: ");
Serial.print(temperatur);
Serial.write(186);
Serial.println("C");
}
}
void loop() {
}
Natürlich ohne das ganze wire-Gedöns, da ich das Modul ja nicht habe. Probiere es doch mal aus und sag uns ein paar Werte, die Du so findest, im Vergleich zu einem anderen Thermometer.
Aber schreib bitte nicht "reale" Temperatur, da jedes Messgerät einen Fehler hat und man im Prinzip den Messwert immer mit Fehler angeben müsste, wir den tatsächlichen Wert also gar nicht kennen (sorry, bin in so Sachen durch ein Ingenieursstudium vorbelastet )
Gegen was vergleichst Du denn überhaupt Deine Ergebnisse, also wo sind diese 23.4°C her?
die "reale" Temperatur ist natürlich keine es war einfag ein Digitalthermometer welchen neben dem Sensor lag, ich hatte halt das Problem das die ausgelesenen Werte nicht annähern mit dem Termometer zu hatten. Jetzt funktioniert es ja.
Mein Microcontroler soll die Steuerung eines Holzvergasers ersetzten diese ist für die Abgastemperatur gedacht. In weiteren Anfragen habe ich andere Module der Steuerung hinterfragt mal sehen wann ich alle zusammenfügen kann.
Also Danke nochmals jetzt istwieder ein Eingang frei, das I2C Display läuft schon......