Hallo zusammen,
Wir arbeiten gerade an einem Projekt zur Wärmeleitungsmessung und kommen nicht weiter.
Wir benutzen das Adafruit Max31865 Breakout Board (ein China Nachbau), um die beiden in Reihe geschalteten PT500 auszulesen.
Die Widerstände stimmen soweit alle, allerdings wird im Code dann ein viel zu hoher Widerstand angezeigt und die angeblich gemessene Temperatur beträgt fast 1000°C, was offensichtlich ein Fehler ist.
Wer kennt sich damit aus und kann uns helfen, damit es funktioniert.
Unsere Lehrer wissen auch nicht mehr weiter und haben uns deshalb geholfen das Video zu drehen.
Also gerne detailliert antworten, damit wir unser Projekt fortführen können.
Wie wäre es mit klaren Infos?
Link zu dem Max31865 Breakout Board, Schaltplan und vor allem den Sketch (in Codetags - bitte hier lesen).
Gruß Tommy
Hallo Tommy,
Wir haben weder einen Schaltplan noch genauere Infos...
Gibt es vielleicht trotzdem eine Möglichkeit uns zu helfen?
Dann ist es sicher kein Adafruit. Somit brauchen wir hier den Link vom Hersteller/Lieferanten. Und euren Sketch, wie Tommy schon schrieb.
Hast du auch schon mal mit dem Max31865 gearbeitet und das gleiche Problem gehabt? In vielen anderen Foren gibt es mehrere, die dasselbe Problem haben wie wir. Leider wurden dort keine Lösungen gegeben.
Dann wird es schwer. Das Ihr keinen Sketch habt, kann ich nicht ganz glauben. Was spielt Ihr denn auf Euren Arduino?
Habt Ihr Euch die komplette Beschreibung bei Adafruit durchgearbeitet?
Das Breakout Board ist für einen PT. Wieso habt Ihr 2 dran?
Gruß Tommy
Und welche PT habt ihr ?
Sind es die 500 oder die 1000 ?
Genaue Infos sind schon wichtig.
Wir versuchen den Scetch gerade hochzuladen, der ist auf einem anderen Computer.
Wir brauchen den Widerstand eines PT1000 haben allerdings nur PT500 und haben deshalb 2 in Reihe hintereinandergelötet
Wir haben 2 PT500 in Reihe geschaltetet um den Widerstand eines PT1000 zu bekommen.
Gemessen stimmt der Widerstand aucj
Bitte schreibt den Widerstand nur mit "i".
Einen Link wo Ihr die PT500 gekauft habt und eine Link wo Ihr den MAX31865 gekauft habt habt Ihr nicht?
Miß mal mit einem Multimeter den Widerstand der beiden PT500 in serie
Bei 25°C 0°C muß dieser 500 Ohm bzw bei 2 in Reihe 1000 Ohm sein.
Laut PT100 Widerstands Tabelle zB https://www.geass.com/wp-content/uploads/filebase/geass/tolleranze-pt100/Termoresistenze-PT100-al-Platino-Tabella-Ohm-Gradi-Celsius-Geass.pdf
hat ein PT100 bei 609 °C eine Widerstandswert von 316 Ohm und bei 809 °C 378 Ohm.
500 Ohm entsprechen ca 1258°C
Über 800°C ist der Sensor mechanisch nicht mehr stabil und darum hört die Tabellen maximal bei 800°C auf .
Bist Du sicher daß Du einen MAX31865 Modul für einen PT1000 hast und nicht für einen PT100?
Grüße Uwe
Gemessen haben wir die Widerstände schon, die Passen sowohl an den PTs als auch am Max31865
Korrekt ist es bei 0 Grad lt. Tabelle.
Gibt es denn noch einen Link von eurem Max31865 ?
Ich verstehe diese Aussage nicht.
Welchen Widerstands-Wert habt Ihr bei Raumtemperatur gemessen?
Grüße Uwe
Wir wir haben mit einem Multimeter gemessen: Die beiden pt500 Sensoren haben einen Gesamtwiderstand von 1085 Ohm,
Hallo @lisa_02
Das entspricht ca 22°C also plausibel.
Ich würde sagen die Sensoren funktionieren.
Ich tippe immernoch daß Ihr ein MAX31865 Modul habt das auf PT100 eingestellt ist.
aus: Overview | Adafruit MAX31865 RTD PT100 or PT1000 Amplifier | Adafruit Learning System
" We put a 0.1% resistor as a reference resistor on the breakout. We have some example code that will calcuate the temperature based on the resistance for you.
- The PT100 version of the breakout uses 430Ω
- The PT1000 version uses 4300Ω"
zB das unten gezeigte Modul ist für einen PT1000. Welchen Widerstand habt Ihr auf Eurem Modul montiert?
Grüße Uwe
#include <Adafruit_MAX31865.h>
// Use software SPI: CS, DI, DO, CLK
//Adafruit_MAX31865 thermo = Adafruit_MAX31865(10, 11, 12, 13);
// use hardware SPI, just pass in the CS pin
//Adafruit_MAX31865 thermo = Adafruit_MAX31865(10);
Adafruit_MAX31865 thermo(10);
// The value of the Rref resistor. Use 430.0 for PT100 and 4300.0 for PT1000
#define RREF 4300.0
// The 'nominal' 0-degrees-C resistance of the sensor
// 100.0 for PT100, 1000.0 for PT1000
#define RNOMINAL 1000.0
void setup() {
Serial.begin(9600);
Serial.println("Adafruit MAX31865 PT1000 Sensor Test!");
pinMode(10, OUTPUT);
thermo.begin(MAX31865_4WIRE); // set to 2WIRE or 4WIRE as necessary
}
void loop() {
digitalWrite(10, HIGH);
uint16_t rtd = thermo.readRTD();
Serial.print("RTD value: "); Serial.println(rtd);
float ratio = rtd;
ratio /= 32768;
Serial.print("Ratio = "); Serial.println(ratio,8);
Serial.print("Resistance = "); Serial.println(RREF*ratio,8);
Serial.print("Temperature = "); Serial.println(thermo.temperature(RNOMINAL, RREF));
// Check and print any faults
uint8_t fault = thermo.readFault();
if (fault) {
Serial.print("Fault 0x"); Serial.println(fault, HEX);
if (fault & MAX31865_FAULT_HIGHTHRESH) {
Serial.println("RTD High Threshold");
}
if (fault & MAX31865_FAULT_LOWTHRESH) {
Serial.println("RTD Low Threshold");
}
if (fault & MAX31865_FAULT_REFINLOW) {
Serial.println("REFIN- > 0.85 x Bias");
}
if (fault & MAX31865_FAULT_REFINHIGH) {
Serial.println("REFIN- < 0.85 x Bias - FORCE- open");
}
if (fault & MAX31865_FAULT_RTDINLOW) {
Serial.println("RTDIN- < 0.85 x Bias - FORCE- open");
}
if (fault & MAX31865_FAULT_OVUV) {
Serial.println("Under/Over voltage");
}
thermo.clearFault();
}
Serial.println();
delay(5000);
}
Das hier wäre jetzt der Sketch, hoffentlich hilft das weiter
Bitte gehe nochmal in Dein Post, markiere Deinen Code und klick dann auf das </> Symbol.-
Und dann hat @uwefed schon gefragt, was Du auf dem Shield für einen Widerstand hast.
Denn wie Du selbst siehst, bezieht sich der Code auf einen R mit 4300Ohm