Can't get a precise reading with PT100 temperature sensor

You can not get more precise readings with an RTD directly connected to the A/D converter of the Arduino. To get more precise readings, you need to put the RTD into a bridge and use an instrumentation amplifier to develop a larger signal.


You can use an external IC that takes care of reading the sensor and then get the result digitally, for example MAX31865

Maybe I could somehow obtain the resistance of PT100 and with some math formula get the temperature?

You can find resistance tables in internet , you can create a table in flash and use interpolation to calculate the temperature based on the resistance you get.


First of all, If you want to get precision from a PT100, you have to use a 4 wires version not 2.

In a 4 wires version, one pair is used to "power" the PT100, the second one is used to measure the voltage drop in the PT100. That way the voltage drop in the cable is minimal: since V=RI and I is almost zero in the measuring pair, no voltage drop. That being said, since PT100 don't need specific wire, it is very easy to convert a 2 wires PT100 to a 4 wires PT100.

You also have to make sure the resistor used to measure the current going through the PT100 is a very precise one (like 0.01%). I also suspect you will need a better AD that the one you have in your Arduino.

Once you are sure you get precise enough data from your AD, then you will have to use PT100 tables to interpolate values. Newton method is easy to program and gives good results.

If you think all this is too complex to handle, then you should switch a to more easier temperature sensor. For instance a NTC would probably work directly on your Arduino, but you will get ~1° precision instead of 0.03°