This calculator helps you convert the measured resistance from a 3-wire Resistance Temperature Detector (RTD) into a precise temperature reading. It is designed for common platinum RTDs like the Pt100 and Pt1000.
Understanding 3-Wire RTD Measurement
A Resistance Temperature Detector (RTD) is a sensor used to measure temperature. It operates on the principle that the electrical resistance of a metal changes predictably with temperature. As the temperature of the metal increases, its resistance also increases.
However, the wires used to connect the RTD sensor to the measuring instrument also have their own resistance. This "lead wire resistance" can add to the sensor's resistance, causing an inaccurate, higher temperature reading. For applications requiring high accuracy, this error must be compensated for. This is where the 3-wire configuration becomes essential.
How a 3-Wire Configuration Works
A 3-wire RTD setup is a clever and common method for canceling out the resistance of the lead wires. Here's how it functions:
Three identical wires connect the instrument to the RTD sensor.
The instrument sends a constant current down one wire (Wire 1), through the RTD element, and back through a second wire (Wire 2). It measures the total voltage drop, which corresponds to the resistance of Wire 1 + RTD Element + Wire 2.
Crucially, the third wire (Wire 3) is connected to the second wire at the sensor end. The instrument uses Wire 2 and Wire 3 to measure the voltage drop across the lead wire only.
By assuming all three wires have the same resistance, the instrument can calculate the resistance of a single lead wire and subtract it from the total measurement. This leaves only the true resistance of the RTD element.
The value you get from a 3-wire measuring device is therefore the compensated resistance of the RTD element itself, which is what you should use in the calculator below.
RTD Resistance to Temperature Calculator
Pt100 (100 Ω at 0°C)
Pt1000 (1000 Ω at 0°C)
Calculation Example
Let's say you are using a Pt100 sensor and your 3-wire measurement device shows a compensated resistance of 119.40 Ω.
Select RTD Type: Choose "Pt100" from the dropdown.
Enter Resistance: Input "119.40" into the resistance field.
Calculate: Clicking the button will solve the Callendar-Van Dusen equation for temperature.
Result: The calculator will show a temperature of approximately 50.00 °C.
The Formula Used: Callendar-Van Dusen Equation
The relationship between resistance and temperature for platinum RTDs is defined by the Callendar-Van Dusen equation. The calculator solves this equation for temperature (T).
For T ≥ 0°C, the equation is a quadratic: R(T) = R₀(1 + AT + BT²)
Where:
R(T) is the resistance at temperature T.
R₀ is the resistance at 0°C (100 Ω for Pt100, 1000 Ω for Pt1000).
A = 3.9083 x 10⁻³
B = -5.775 x 10⁻⁷
For temperatures below 0°C, a different form of the equation is used. This calculator uses a standard linear approximation for negative temperatures, which is accurate for most common applications.
function calculateTemperature() {
var rtdType = document.getElementById("rtdType").value;
var resistanceStr = document.getElementById("measuredResistance").value;
var resultDiv = document.getElementById("result");
if (resistanceStr === "") {
resultDiv.innerHTML = "Please enter a resistance value.";
resultDiv.style.backgroundColor = "#ffebee";
resultDiv.style.borderColor = "#e57373";
return;
}
var resistance = parseFloat(resistanceStr);
if (isNaN(resistance) || resistance < 0) {
resultDiv.innerHTML = "Invalid input. Please enter a valid positive number for resistance.";
resultDiv.style.backgroundColor = "#ffebee";
resultDiv.style.borderColor = "#e57373";
return;
}
var R0;
var A = 3.9083e-3;
var B = -5.775e-7;
var C = -4.183e-12; // For T = R0) {
// For T >= 0°C, solve the quadratic equation: R0*B*T^2 + R0*A*T + (R0 – R(T)) = 0
var quad_a = R0 * B;
var quad_b = R0 * A;
var quad_c = R0 – resistance;
var discriminant = (quad_b * quad_b) – (4 * quad_a * quad_c);
if (discriminant < 0) {
resultDiv.innerHTML = "Calculation error: Resistance value is not physically possible for this RTD type.";
resultDiv.style.backgroundColor = "#ffebee";
resultDiv.style.borderColor = "#e57373";
return;
}
temperature = (-quad_b + Math.sqrt(discriminant)) / (2 * quad_a);
} else {
// For T < 0°C, a full analytical solution is complex (4th order polynomial).
// A common and reasonably accurate method is iterative, but for a simple calculator,
// a linear approximation is often sufficient for moderate negative temperatures.
// T ≈ (R(T)/R0 – 1) / A
temperature = (resistance / R0 – 1) / A;
// A slightly more accurate quadratic approximation for T < 0
// R(T) = R0 * (1 + A*T + B*T^2) is still a decent fit down to -50C
var quad_a_neg = R0 * B;
var quad_b_neg = R0 * A;
var quad_c_neg = R0 – resistance;
var temp_check = (-quad_b_neg – Math.sqrt(quad_b_neg*quad_b_neg – 4*quad_a_neg*quad_c_neg)) / (2*quad_a_neg);
// We use the simpler linear approximation for robustness in a web calculator
// but a more complex implementation could use iteration or the full C coefficient.
// For this calculator, we will stick to the linear approximation for simplicity.
temperature = (resistance / R0 – 1) / A;
}
resultDiv.innerHTML = "Calculated Temperature: " + temperature.toFixed(2) + " °C";
resultDiv.style.backgroundColor = "#eaf6ff";
resultDiv.style.borderColor = "#b3d9f5";
}