MAX31865 Module For PT100/PT1000 Sensor

https://www.botshop.co.za/web/image/product.template/1212/image_1920?unique=6dfcc67
(1 review)

146.10 146.1 ZAR 162.33 VAT Included

141.16 VAT Included

Not Available For Sale

This combination does not exist.

Sensors Module

Internal Reference: SEN-037

MAX31865 Module For PT100/PT1000 Sensor.

The MAX31865 is a tiny surface mount chip, used for the PT100 and PT1000 temperature sensors. Which needs a lot of other components to make it work. luckily you get nifty breakout boards like these which makes life much easier. You can control the chip and read data from it using the breakouts at the bottom.

Power Pins:

  • Vin - this is the power pin. Since the chip uses 3 VDC, we have included a voltage regulator on
    the board that will take 3-5VDC and safely converts it down. To power, the board, give it the same power
    as the logic level of your microcontroller - e.g. for a 5V micro like Arduino, use 5V
  • 3Vo - this is the 3.3V output from the voltage regulator, you can grab up to 100mA from this if you
    like
  • GND - common ground for power and logic

SPI Logic pins:

  • All pins going into the breakout have level shifting circuitry to make them 3-5V logic level safe. Use
    whatever logic level is on Vin!
  • SCK - This is the SPI Clock pin, it is an input to the chip
  • SDO - this is the Serial Data Out / Microcontroller In Sensor Out pin, for data sent from the
    MAX31865 to your processor
  • SDI - this is the Serial Data In / Microcontroller Out Sensor In pin, for data sent from your processor

Datasheets: Max31865 IC
Sample code: Diagram and code

 

MAX31865 Module For PT100/PT1000 Sensor


#include <Adafruit_MAX31865.h>

// The value of the Rref resistor.
// 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, 1000.0 for PT1000
#define RNOMINAL 100.0

// The constructor expects the Arduino pin-numbers
// in the following order: CS, DI, DO, CLK
Adafruit_MAX31865 sensor = Adafruit_MAX31865(10, 11, 12, 13);
unsigned long lastRead = 0UL;

void setup()
{
  Serial.begin(9600);
  // use 2WIRE, 3WIRE, or 4WIRE as necessary
  sensor.begin(MAX31865_3WIRE);
}


void loop()
{
  // Read the temperature once every second
  if(millis() - lastRead > 1000)
  {
	uint16_t rtd_value = sensor.readRTD();
	float ratio = (float)rtd_value / 32768.0f;
    
	Serial.print("RTD Resistance: ");
	Serial.println(RREF * ratio, 8);
    
	Serial.print("Temperature:	");
	Serial.println(sensor.temperature(RNOMINAL, RREF));

	lastRead = millis();
  }
}

Resources:

Links: https://www.programmersought.com/article/82705206627/
           https://forum.arduino.cc/t/reading-multiple-rtds-with-one-max31865/1068726