# How is a thermistor voltage converted into a temperature value?

Here is a list of thermistors I have found on Farnell:

https://uk.farnell.com/honeywell/135-104laf-j01/thermistor-ntc-100k-5-axial/dp/2112935

https://uk.farnell.com/ametherm/ms35-10018/ntc-thermis-curr-limit-inrsh-10r/dp/1839046

They all have very different appearance but are all 2 port devices.

I understand the basic idea that in a thermistor, the resistance changes with temperature. This property can be used to measure the temperature, but it is not clear how to go from the voltage across a thermistor to an actual temperature.

I think we should use a voltage divider with the thermistor. If this is the case, then the resistance of the resistor (that is dividing the voltage) besides the thermistor will also change with temperature. Thus, I am not sure how accurate that method is.

I believe that there is a nonlinear relationship between the resistance of the thermistor and thus the voltage across it, and the temperaure of the thermistor.

In my application I am going to use an ADC to measure the voltage across the thermistor and then convert it into a temperature value, but the actual method to use the thermistor in the circuit and to convert the measured voltage into a temperature value is not clear.

EDIT:

https://www.farnell.com/datasheets/2012717.pdf

https://www.farnell.com/datasheets/1447649.pdf

These are for the first and last component found on Farnell mentioned above. When I said "not clear" I meant that looking at this datasheet, it is not clear how to work out a temperature from the voltage across this component. I can't find anything in the datasheet that would help me do this.

• The Thermometrics thermistor handbook is a great reference. Though I haven't seen a hardcopy in years, it's apparently available online here: archive.org/details/… Commented Nov 1, 2022 at 20:50
• All I want to know is, how to construct a reliable circuit and then convert the measured voltage into a temperature value. Commented Nov 1, 2022 at 20:55
• How much accuracy do you need? You can go from using a low-TCR resistor as the other half of your divider to a current source with instrumentation amp across the thermistor.
– vir
Commented Nov 1, 2022 at 20:56
• Here’s a link that should get you going: learn.adafruit.com/thermistor/using-a-thermistor For just about any common question about microcontrollers, add ‘Arduino’ to your search parameters. Eg: ‘Arduino thermistor’. There’s a fair chance there’s a tutorial that will answer your questions. Commented Nov 1, 2022 at 21:04
• Can you explain what you said to be "not clear" (two occasions you said it)? What is it that is unclear? Commented Nov 1, 2022 at 21:07

It is possible to linearize the voltage by adding another resistor in parallel across the thermistor, and measuring the voltage across the pull-up resistor (Rs in the schematic below). With a 10k thermistor, a 4k pull-up and 3k parallel, the voltage is a nearly linear function of degrees Kelvin.

A little better linearity with Rpullup = 6.5k and Rparallel=3.5k

The thermistor doesn't output a "voltage". It's a variable resistor - It changes resistance as it changes temperature.

You turn it into a voltage by making it part of (usually) a voltage divider.

Your ADC would read the voltage across the thermistor in the voltage divider, you then back-calculate to find the thermistors resistance because you know the value of the other resistor in the divider. (Google "Voltage divider" if you have no idea what I am talking about...)

Since the relationship between resistance and temperature is not linear, you can't use a simple equation to make the conversion (unless your temperature range of interest is so small it appears "linear"). You probably need to create a lookup table in your software. i.e. you take a sequence of resistance values from the datasheet, and their corresponding temperatures, and build that into your code. You decide how precise it needs to be (i.e. how many table entries). You can get fancy and use linear interpolation between points (close enough) or use a zillion entries if you want really good precision/accuracy

Note the action of passing current through this voltage divider, and therefore through the thermistor, will have an effect of slightly heating the thermistor. Whether that's an issue depends again on the required precision of your final application.

The simplest way to use a thermistor with an ADC is to connect it with a series resistor as so:

simulate this circuit – Schematic created using CircuitLab

Typically Rs would be somewhere in the middle of the useful range of the thermistor resistance range, and the thermistor and resistor would be chosen to have acceptable self-heating error.

The sensitivity (dv/dT) at the ADC input wrt Temperature is maximum with Rth = Rs and it drops off (rapidly in the case of a typical NTC thermistor which changes several percent per Kelvin) on either side. That places higher demands on the resolution and accuracy of the ADC at high and low temperatures, and needs to be considered in a detailed design.

You can use an equation or lookup table to convert the nonlinear voltage reading to temperature.

This is a useful circuit for a relatively narrow range of temperature but for reasons of dynamic range and cost it's seldom used in typical consumer products. More typically an oscillator is made with the thermistor and a capacitor and the resistance is measured relative to a relatively precise reference resistor (to a relatively high resolution because of the dynamic range issue)- so resistance ratio to the reference resistor is converted a ratio of times or frequencies.

There are also bridge circuits that provide some degree of analog linearization of the thermistor over a relatively narrow range, however they're not used so much these days. There were even circuits with two thermistors. If you need a relatively linear output, an RTD is typically a better choice.

• Won't the resistance of the reference resistor Rs, also change with temperature which can introduce error? I thought that since the input to the FPGA can only vary between 0V and 3.3V, the "ADC reference" node would actually need to be connected to Vcc = 3.3V instead. However, I now see that it must be connected to an accurate reference voltage source which would be a component specific for this purpose e.g a reference voltage generating diode or IC. Commented Nov 1, 2022 at 21:45
• @Quantum0x7E - Yes, changes in Rs will affect the measured voltage, and so the inferred temperature. How much depends on the temp co of the resistor, and how much the resistance of the thermistor changes with temperature (its sensitivity). Whether this is a concern or not depends on your requirement. You should perform a worst case analysis (WCA) to better understand the sources of error. Commented Nov 1, 2022 at 21:51
• Even a cheap 1% resistor will be roughly 3 orders of magnitude more stable with temperature than a thermistor (so a negligible contribution to error considering the tolerance on $\beta$) . Probably it's not exposed to the same temperature variations unless those variations are mild. Whether you can use the 3.3V or if you need a better reference depends on requirements and error budget. Using two different references can help maximize the error and drift (not desirable). Commented Nov 1, 2022 at 21:52
• There is a subtle error in the OPs thinking. This is a ratiometric circuit. The calculation of Rth does not depend on the actual reference voltage. So whatever voltage the ADC is using for a reference should be connected to Rs. It does not have to be a special regulator or reference. The voltage should be stable and smooth but it does not need to be particularly accurate. Commented Nov 2, 2022 at 2:12
• @mkeith yes, filtering is desirable in many cases. An RC is better than just a C because the source resistance of the divider can vary more than an order of magnitude, and probably you want to maintain a more-or-less constant cutoff frequency. Commented Nov 2, 2022 at 4:19