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
Der pt100 ist auch wirklich einer? Was liefert Dein Max31865, wenn Du stattdessen einen 100-Ω-Widerstand (1% oder besser, keine Kohle) anschließt?
Ich bin mir nicht sicher, ob 15 °C Abweichung wirklich hiervon kommen können, aber trotzdem der Hinweis von mir: Ich habe vor kurzen in einem Projekt vier dieser MAX31865 Boards eingesetzt. Alle vier Boards kamen von eBay und nach der Inbetriebnahme haben alle vier Boards eine unterschiedliche Temperatur gemessen (Abweichung einige °C). Die Ursache war der Referenzwiderstand (ist auf der Platine mit "Rref" beschriftet). Wenn du das Datenblatt des MAX31865 liest, wirst du feststellen, dass der Strom, der durch den RTD fließt, auch durch den Referenzwiderstand fließt und der Spannungsabfall über dem Referenzwiderstand als Referenz für den ADC verwendet wird. Nach einer kurzen Messung mit dem Multimeter konnte ich feststellen, dass der Widerstand zwischen den Boards jeweils um einige Ohm abweichte - vermutlich wurden Widerstände mit 5 % Toleranz bestückt. Nachdem ich bei allen vier Boards den Widerstand durch einen mit 0,1 % Toleranz ersetzt habe, haben alle Boards die identische Temperatur angezeigt. Ich habe gerade auch nochmal einen Blick in das Datenblatt geworfen, hier ist von einem 400 Ohm Referenzwiderstand die Rede. Bei meinen Boards waren aber Widerstände mit 430 Ohm verbaut. Evtl. muss die Konfiguration abhängig vom Referenzwiderstand angepasst werden...? Ich habe leider im Moment nicht die Zeit, das Datenblatt im Detail zu lesen, aber evtl. forschst du in die Richtung auch nochmal nach.
Harald K. schrieb: > Der pt100 ist auch wirklich einer? Was liefert Dein Max31865, wenn Du > stattdessen einen 100-Ω-Widerstand (1% oder besser, keine Kohle) > anschließt? Hallo Harald, das PT100 ist ein PT100, der Widerstand ändert sich. bei einem 100Ohm Widerstand ist das Ergebnis 7541, sollte jedoch 8192 sein. Danke für die Unterstützung
Hallo bema16, es stimmt, das laut Datenblatt 400 Ohm angegeben sind und wenn man das Netz bemüht findet sich bei ADAFRUIT das : While the MAX31865 can support either 100ohm or 1kohm RTDs, the Adafruit breakout comes in two versions with different reference resistors specific to each type of RTD. PID 3328 = 430Ω for use with 100ohm RTDs. PID 3648 = 4.3kΩ for use with 1kohm RTDs. If marking is 4300 or 431 its PT100 If marking is 4301 or 432 its PT1000 gemessen habe ich 430 /429 Ohm was die Konfiguration nach ADAFRUIT bestätigt. laut Datenblatt wird die Umrechnung mit RRTD = (ADC * RRef)32768 gemacht. Wenn man das mal rechnet, sind das fast 6 Ohm. ich werde mir die 400Ohm besorgen und dann noch mal probieren. Wobei wenn man rechnet (8192*400)/32786 =100 Stellt man das um (100 *32768)/7541 kommen die 431 Ohm raus. passt also, 400 Ohm rein und dann sollte es gehen. Und wer mit PT1000 arbeitet sollte dann 4000 Ohm einbauen ;-) Warum dann die 431 Ohm... lagen wahrscheinlich rum Ich werde berichten Danke und Grüße
Klaus H. schrieb: > Warum dann die 431 Ohm "Marking 431" heißt mitnichten 431 Ohm, sondern 43 mit einer nachfolgenden Null. 432 wäre 43 mit zwei nachfolgenden Nullen und 433 wiederum 43 mit drei nachfolgenden Nullen.
Du hast vollkommen recht, Asche auf mein Haupt ;-) Ich hatte die Widerstände ausgelötet und gemessen und dabei den Wert hier mitgeteilt. >> Warum dann die 431 Ohm die Übernahme des gemessenen Wertes, weiter oben steht das Marking richtig danke für die Korrektur.
Harald K. schrieb: > "Marking 431" heißt mitnichten 431 Ohm Es gibt aber noch andere Codes. 430Ω kann auch mit "R2" oder "62A" (= 432Ω) beschriftet sein. https://www.segor.de/INFO/wissenswertes/141-smd-widerstands-code.shtml
Klaus H. schrieb: > Warum dann die 431 Ohm... lagen wahrscheinlich rum 430 Ohm ist ein typischer Widerstand aus der E24 Gruppe, 400 Ohm gibt es in der E-Reihe nicht, das nächste wäre 402 Ohm aus der E48.
Hallo zusammen, die bestellten Widerstände sind angekommen. wie richtig bemerkt gibt es keine 400Ohm mit der Toleranz von 1% und kleiner daher 2x200Ohm (Marking 201) in Reihe. Das funktioniert jetzt wunderbar. Danke Bema16. Das nächste mal werde ich die ironisch gemeinten Bemerkungen irgendwie kennzeichnen ;-) ADAFRUIT und Co sollten das ggf. mit dem Referenzwiderstand in ihren Beschreibungen erwähnen, das hätte einiges erspart. Grüße
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.