How to connect a PT1000 temperature sensor to Arduino Nano

Hello there Arduino Community!

I'm quite new at this, but I want to connect a Danfoss PT1000 temperature sensor to my Nano, and I am a bit blank on where to start. What pins? I suppose any analog to GND? And do I need anything in between, e.g. resistors? Do I need to use less volts than 5? (I do also have a NodeMCU at hand, which has 3.3V from the analog ports I think?!)

I also found this site with a conversion formula: Electronics Guru: PT1000 temperature sensor chart & calculations (C codes), which I suppose I need to use as well.

Thankful for any input, and wishing you all a happy day :slight_smile:

This is the exact product:

ESMB-12
http://heating.danfoss.com/xxTypex/37434_MNU17591858.html

The Danfoss link doesn't provide the specs for the part. Google PT1000 spec or datasheet and you will see the resistance vs temperature.

What are you measuring and what accuracy do you need?.

The simplest way is to use a resistor divider with a 1K Ohm resistor to your power supply. That will get you fair accuracy over the normal ambient temperature range.

Adafruit makes a PT100 interface board that (I think) can be modified for PT1000 by changing a resistor or two on the board. That will give you better accuracy.

There are ways to measure temperature with incredible accuracy using RTDs, but there are a lot of factors and it will require calibration. Again, Google is your friend.

Good evening sdturner (or what part of the day it is with you), here its 10PM.

This is just for practise and learning the basic stuff, so I do not need it to be all that accurate, but to get it working would be nice :slight_smile: I have tried Google, but most of the answers assume I know a lot more that I do. But, I have come a little way by now, and tried a few things with some results, but still a bit far off where I should be.

I am attaching to photos. The first setup was using 2 1K resistors, the second using also a 1K resistor.

The first setup just gave a constant flow of the same number no matter if I cooled or heated the sensor. The second setup "worked" but it only gave values with in a range of 20 (445 to 465) when measuring in a glass with ice and putting the sensor in the arm pit, which is all to narrow... I tried larger and smaller resistors, but that did not help.

I got a suggestion elsewhere to learn this, and apply it: Wheatstone bridge - Wikipedia
Or to learn using op-amps... still not sure what it is :slight_smile:

This is my code:

const int tempPin = A0; //A5

void setup() {
  Serial.begin(9600);
  pinMode(tempPin, INPUT);  
}

void loop() {
  int val;

  val = analogRead(tempPin);
  Serial.println(val);
  delay(500);
}

Any suggestion or advice is appreciated!

The picture with 1 resistor is what I had in mind, however I just looked closer at the PT1000 resistance vs temperature chart. I forgot RTDs change linearly with temperature. I normally use Thermistors that change exponentially. RTDs need a more complex driver circuit. Adafruit makes a PT100 driver board that can be modified to drive PT1000. They have full schematics and a description of how it works.

What you are reading is probably right. The resistance at 0C is 1000 Ohms, which should be about 2.5V and about 512 cts. The resistance at 30C is 1117 Ohms which should be about 2.64V and 540 cts.

The RTD and the 1K resistor form a resistor divider. If you don't know what that is, Sparkfun, Wikipedia and many other places online have tutorials that explain better than I could here.

1 Like

Thank for the reply! This is good to know, and yes - I know what a voltage (I assume that's what you meant by resistor) divider is.

It seems I am on track after all then :slight_smile:

Take care!

Adafruit also have a PT1000 version: Adafruit PT1000 RTD Temperature Sensor Amplifier - MAX31865 : ID 3648 : $14.95 : Adafruit Industries, Unique & fun DIY electronics and kits

I could not get any of these MAX31865 boards to work. Bought six of them. All shows RTD value of zero. Trash. Bin.

Looking for making a DIY amplifier...