RTD PT100 with arduino

How to use PT100 RTD Temperature Sensor with ardino

On Proceed

PT100 is an RTD. RTD is Resistance Temperature Detectors. From it’s name we can guess how the sensor works. This sensor works by using the principles that the resistance of a metal changes as the temperature changes. Shortly, when this sensor get hot and you measure the resistance, it will give different result unlike when you measure when the sensor is not hot or even cold.
And maybe you have a question, how much is the resistance and the differences? To answer the question you can google search what so called RTD resistance table. And you should got something below.

So PT100 means that the sensor will give resistance 100 ohms when the temperature is 0 degree Celsius. You can read whole resistance at any given temperature in this document. For example if the temperature is 30 degrees of Celsius it has 111.88 ohms of resistance.
Now since this sensor only give resistance as an output, how can we use this sensor with microcontroller or PLC or any other electronics device?
The answer is you have to convert the resistance to voltage, so it will easy to measure with microcontroller or Arduino or raspberry pi or whatever you want to use.
You can easily add a resistance in series with this sensor, give an VCC and ground. And you’ll able to get voltage different at the middle of these two resistor.

RTD as voltage divider

But sometimes it’s not the best way because it generate very low voltage different since the sensor only change small resistance if the temperature changes is small.

To make this easier, we can use transmitter that we can buy with cheap price. This device has ability to convert the resistance to current so you can directly connect to a PLC. In case you want to use PLC. But if you want to use microcontroller or Arduino, we need to convert the current to voltage, since Arduino only able to read voltage with ADC.
To convert the current to voltage we need a resistor. So just put resistor in this transmitter output and we can get the voltage different. After we get voltage difference then simply connect the voltage to Arduino analog input. And it’s done.

This transmitter have ability to generate current between 4-20mA. So with ohm law we can get how much resistance that we should use to convert this current to voltage.
So if maximum current is 20mA and we want generate maximum voltage to 5V since the Arduino only able to read maximum voltage at 5V. then we can get

Ohm law for calculating reistance needed for PT100 transmitter

So the schematic become like below

Now connect the circuit with arduino and read the voltage from the resistor at transmitter output.


  Reads an analog input on pin 0, converts it to voltage, and prints the result to the Serial Monitor.
  Graphical representation is available using Serial Plotter (Tools > Serial Plotter menu).
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.

  This example code is in the public domain.


// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = sensorValue * (5.0 / 1023.0);
  // print out the value you read:

The output of this sketch is still voltage that linear with the temperature. To change the voltage to temperature value. You need to multiply with a constant that you get from comparison with a thermometer (calibration).

Here’s the full video step by step