MAX31865 RTD converter
The MAX31865 reads a PT100 or PT1000 platinum RTD as a 15-bit resistance ratio over SPI, with fault thresholds and a data-ready pin.
Aliases: MAX31865 module, Adafruit PT100 RTD amplifier, PT1000 amplifier. A platinum RTD is the most accurate common thermometer: its resistance rises steadily with temperature, 100 ohms at 0 C for a PT100. The MAX31865 measures it against a precise reference resistor on the board.
Pins
| Pin | What it does |
|---|---|
VIN, GND |
Supply, 3 to 5 V on the board. |
CLK, SDI, SDO, CS |
SPI in mode 1 or 3. |
RDY |
Low when a new result is waiting. |
Properties
temperature is the RTD's (the slider changes it), nominal its resistance at 0 C (100
or 1000) and reference the board's reference resistor (430 or 4300).
Reading it on an Arduino
With Adafruit's library, which Mokxi ships as Adafruit_MAX31865.h:
#include <Adafruit_MAX31865.h>
Adafruit_MAX31865 thermo(10, 11, 12, 13); // CS, SDI, SDO, CLK
void setup() {
Serial.begin(9600);
thermo.begin(MAX31865_3WIRE);
}
void loop() {
Serial.println(thermo.temperature(100.0, 430.0));
delay(1000);
}
How it talks
The first byte is an address, bit 7 set to write: 0x00 configuration, 0x01 and
0x02 the RTD ratio (the low bit is the fault flag), 0x03 to 0x06 the high and low
thresholds, 0x07 the fault status. With the bias on (configuration bit 7), a one shot
(bit 5) takes 52 ms; automatic mode (bit 6) converts every 16.7 ms. The ratio is
R_RTD / R_REF x 32768.
What it does not model
The wire count's effect on the reading, the fault detection cycle's voltage tests (an open probe reports a high-threshold and REFIN- fault), and mains noise.
Common mistakes
Reading with the bias off: nothing converts. Using a PT1000's numbers with a PT100
board: set nominal and reference to match the probe and the board.