The MAX31865 is an easy-to-use resistance-to-digital converter designed for platinum resistance temperature detectors (RTDs). An external resistor determines the sensitivity for the RTD used, and a precision delta-sigma ADC converts the RTD resistance ratio to the reference resistance into a digital output. The MAX31865’s inputs are protected against overvoltage faults up to 45V. It also includes programmable detection for RTD open or short circuits and cable open or short circuits.
Key Features and Specifications
If you'd like to support the development of the site with the price of a coffee — or a few — please do so here.
Here's a handy tip: you can quickly save this page as a PDF by clicking “export to PDF” in the menu on the right side of the screen.
RTDs (Resistance Temperature Detectors) are straightforward devices: simply a small strip of platinum that measures precisely 100 Ω or 1000 Ω at 0°C. Bonded to the PT100/PT1000 are two, three, or four wires.
Thus, the 4-wire RTD has two wires attached to each side of the sensor. Each wire has about 1Ω of resistance. When connected to the amplifier, the innovative amp measures the voltage across the RTD and across the wire pairs.
For example, the approximate resistances of a 4-wire PT100 RTD at 0 °C are as follows. (For a PT1000, the middle resistance would be about 1002Ω rather than 102Ω).
Connect the two ends of the PT100/PT1000 resistor to the RTD+ and RTD- terminals on the sensor module. For example, a resistance of 102 Ohms can be measured. In a 3-wire or 4-wire setup, the wire connections go to the F+ and F- terminals. These connections might differ from the resistance values of the respective sides by only a few Ohms, meaning the resistance between F+ and RTD+ or F- and RTD- may vary slightly, just a few Ohms.
Basic resistance values in Ohm PT100 sensors according to DIN/IEC 751
Since this is an SPI-capable sensor, we can use either hardware or software SPI. To ensure consistent wiring across all Arduinos, we'll start with 'software' SPI. The following pins should be used:
To start reading sensor data, install the Adafruit MAX31865 library from the Arduino library manager.
This basic example uses the Adafruit library to read temperature from a PT100 sensor using a 3-wire configuration.
#include <Adafruit_MAX31865.h> // Use hardware SPI: pass only the CS pin Adafruit_MAX31865 thermo = Adafruit_MAX31865(10); // Use 430.0 for PT100 and 4300.0 for PT1000 #define RREF 430.0 // The 'nominal' 0-degrees-C resistance of the sensor (100.0 for PT100) #define RNOMINAL 100.0 void setup() { Serial.begin(115200); Serial.println("MAX31865 PT100 Test!"); // Change to MAX31865_2WIRE or MAX31865_4WIRE as needed thermo.begin(MAX31865_3WIRE); } void loop() { uint16_t rtd = thermo.readRTD(); float ratio = rtd; ratio /= 32768; Serial.print("RTD value: "); Serial.println(rtd); 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 for faults uint8_t fault = thermo.readFault(); if (fault) { Serial.print("Fault 0x"); Serial.println(fault, HEX); thermo.clearFault(); } Serial.println(); delay(1000); }
Adafruit MAX31865 RTD PT100 or PT1000 Amplifier
This page has been accessed for: Today: 2, Until now: 67