Reading the output of an RTD PT1000


I am trying to read a voltage from a voltage divider, in which one of the resistors is an RTD.
I can do it, but the voltage readings oscillate a bit, so I don't get a very stable reading.

Because I am new to this kind of sensor, I was wondering if it is normal, or if there is a better circuit for reading a value related to the Resistance in the RTD. I am using a two wire RTD (the most innaccurate), and read on the net that it is common to use a wheatstone bridge to read a voltage. Can this be a better solution ?


There are many things influencing your results.

  • how stable is the voltage of your circuit?
  • what reference voltage are you using?
  • temperature fluctuations
  • coupling of signals into your sensing circuit.
  • the components you are using
  • what range is the input signal at your ADC. You want the signal to swing the whole range inside your applications temperature range. e.g. you do not measure body temperatures with a sensor that measures across 1000 degrees.

To figure out whether the results you are getting are within reason we need the circuit diagram with values for the resistors, what Arduino you are using and the results you are getting.

Simply reading an RTD with a pull up resistor and Arduino's A/D will have a poor temp resolution.
The sensors need a special (digital) breakout board.


I am aware that there are already available solutions for signal conditioning the output of the
RTD. But I was trying to do it by myself in order to learn something from it.
The schematic of the voltage divider is attached to this post.
Edit : The resistor value is 10K not 1K.

The top resistor is 10K Ohm. The bottom one is the RTD. The circuit is being supplied with the 5V from the Arduino Uno board. The V0 wire is being fed to the Analog 0 input of the Arduino. The ground is also from the Arduino.


OK, do you have a datasheet for the RTD? Could you please add a link?

What is the minimum and maximum temperature you are measuring?
In the datasheet of the RTD you should find the resistance values at these temperatures.

With them you can calculate the minimum and maximum voltage you will see at the A/D converter.

With the reference voltage you can figure out the voltage differential between each A/D steps. It’s a 10bit A/D converter so you have 1024 steps. With the min and max Voltage, you can figure out how many steps you get.

e.g. minimum voltage 1V, max 3.5V, Reference 5V, so half your bits are lost

What is the temperature resolution you would like to measure? The min, max and resolution will give you the number of steps you need to create a result.

e.g. -10 to + 30 in 0.5 steps is 80 steps

Now look at your results.

e.g. you have 10-bit results, but 2 bits are fluctuating. So, you have 8 clean bits

You compare the steps you need with the stable steps you get out of your circuit.

Now you have a starting point and look where you can improve your circuit or lower the expectation of the result accuracy. :slight_smile: Check the datasheet of the microcontroller section A/D converter for setting of reference voltages, noise canceling ...

I am aware that there are already available solutions for signal conditioning the output of the
RTD. But I was trying to do it by myself in order to learn something from it.

As said, resolution will be poor. About one A/D step per degreeC at best.
Choose the pull up resistor to match the temp of interrest.
1k for temps around 0C, but 1k8 would be better around 200C. Google an RTD1000 resistance table for that.
Code as you would read a thermistor, with Steinhart-Hart formula (good luck with that).


The sensor I am using is a Proffuse PT1000 RTD. I could not find the datasheet for this on the net. (I bought it on a electronics webshop). But from what I have gathered these sensors have resistances at known temperatures that are industry standard. So, now I am using the table for PT1000 from this link : RTD Sensor (Pt100, Pt1000)

With the circuit I attached, the minimum step is 3 for -30º and 138 for 150º. That's the range I want.
So to get a better resolution, I need to amplify the output voltage, right ? Pardon my ignorance, I am just getting into the electronics field.


With -30C you have a resistance value of 882.2ohms, an A/D value of 882.2/(882.2+1000)*1024= 480
With 150C you have a resistance value of 1573.3ohms, an A/D value of 1573.3/(1573.3+1000)*1024= 626
626-480= 146 A/D values between those two temps (not even one per degreeC).
A Steinhart-Hart formula must be used to fix the uneven spacing between A/D values and degreesC.

Yes, you need an amplifier and a higher resolution A/D (the board I linked to).