Hallo zusammen,
ich wollte die Temperatur mittels PT100 erfassen und habe mir dazu den MAX31865 auf den kleinen Boards besorgt. Entwickelt wird mit Atmelstudio auf einen ATMega328P den Source für die SPI-MAX Libs habe ich von https://github.com/GeorgeShift/max_31865/ heruntergeladen.
der Fühler hat eine 15cm lange Anschlußleitung, der MAX31865 & Das PT100 sind in 2-Wire verkabelt. Widerstand am Fühler sind ~109 Ohm, was mit der Raumtemperatur in etwa übereinstimmt.
Den MAX lese ich im Singleshot aus was auch klappt
max_spi_write(CONFIGURATION, 0b10100000);
lsb_rtd = max_spi_read(READ_RTD_LSB); msb_rtd = max_spi_read(READ_RTD_MSB);
RTD = ((msb_rtd << 7)+((lsb_rtd & 0xFE) >> 1)); if (datatype == 'r') return RTD;
// Basic temperature calculation, the accuracy for temperatures // between -75°C - 100°C is max +-1.5°C temperature = ( (long)10*RTD >> 5) - 2560; // RTD / 32 - 256 if (datatype == 't') return temperature;
das Problem ist, das der gelesene Wert ~15°C zu wenig anzeigt.
Ich habe das mit 3 dieser Boards getestet.
Aktuell lese ich alle Register aus die Ergebnisse:
RTD Low Fault Threshold High Fault Threshold
LSB 84 0 255 MSB 65 0 255
RTD gesamt 8362 //RTD = ((msb_rtd << 7)+((lsb_rtd & 0xFE) >> 1));
Faultstatus= 0
hat jemand ne Idee warum das Ergebnis so aussieht? Das Ergebnis ändert sich auch mit max_spi_write(CONFIGURATION, 0b10000000); nicht.
Grüße Klaus
