Electronics Design AU
Temperature SensorsAnalog

What Is a Thermistor and How Do You Use One?

Last updated 27 June 2026 · 7 min read

Direct Answer

A thermistor is a temperature-sensitive resistor whose resistance changes predictably with temperature. NTC (negative temperature coefficient) thermistors — the most common type — decrease in resistance as temperature rises. The relationship is highly non-linear: a 10kΩ NTC thermistor at 25°C may measure 32kΩ at 0°C and 3.6kΩ at 50°C. The standard measurement circuit is a voltage divider: Vout = Vcc × R_fixed / (R_fixed + R_NTC). To convert resistance to temperature, use the Steinhart-Hart equation (accurate to ±0.01°C) or the simpler Beta equation: 1/T = 1/T0 + (1/B) × ln(R/R0), where T0 = 298.15 K (25°C) and B is the material constant from the datasheet (typically 3000–4500 K for NTC thermistors).

Detailed Explanation

NTC thermistors are among the most cost-effective temperature measurement components available — a 10 kΩ NTC in a 0402 package costs a few cents, requires no power management, and reads out directly on any MCU ADC pin. The trade-off is that the resistance-to-temperature relationship is highly non-linear and requires careful circuit design and calibration to achieve good accuracy.

NTC vs PTC Thermistors

NTC (negative temperature coefficient): Resistance decreases as temperature rises. Most temperature measurement applications use NTC thermistors. Made from sintered metal oxides (manganese, nickel, cobalt oxides). Available in resistance values from a few ohms to several megaohms at 25°C. The most common value is 10 kΩ at 25°C.

PTC (positive temperature coefficient): Resistance increases as temperature rises. Available as polymer PTC (gradually increasing resistance, used in resettable fuses/polyfuses) and ceramic PTC (sharp resistance jump at a specific transition temperature, used as self-regulating heater elements or overcurrent protection). Less used for measurement; the resistance-temperature curve is not smooth enough for precision sensing.

The Voltage Divider Measurement Circuit

A thermistor cannot be read by an ADC directly — the ADC reads voltage, not resistance. The simplest interface is a resistor voltage divider:

Vcc ─── R_fixed ─┬─── Vout → ADC
                 │
              R_NTC (thermistor)
                 │
               GND

Vout = Vcc × R_NTC / (R_fixed + R_NTC)

Or with the thermistor at the top and fixed resistor at the bottom:

Vout = Vcc × R_fixed / (R_fixed + R_NTC)

Both variants work; the choice affects which end of the temperature range gives the highest ADC reading.

Example calculation (10 kΩ NTC, 10 kΩ fixed, 3.3 V supply, 12-bit ADC):

TemperatureR_NTCVoutADC count (12-bit)
0°C~32,000 Ω3.3 × 10,000/(10,000+32,000) = 0.79 V982
25°C10,000 Ω3.3 × 10,000/(10,000+10,000) = 1.65 V2,048
50°C~3,600 Ω3.3 × 10,000/(10,000+3,600) = 2.43 V3,013
80°C~1,300 Ω3.3 × 10,000/(10,000+1,300) = 2.92 V3,628

Note the strongly non-linear output — a 25°C change from 0° to 25° moves the ADC by 1066 counts, while the same 25° change from 50° to 75° moves it by only ~450 counts. At higher temperatures, resolution degrades because the thermistor's resistance change per degree becomes smaller.

Converting ADC Reading to Temperature

Step 1: ADC → resistance

From the ADC reading (N), recover R_NTC:

R_NTC = R_fixed × (ADC_max / N − 1)

where ADC_max is the maximum ADC count (4095 for 12-bit).

Step 2: Resistance → temperature using the Beta equation

T (Kelvin) = 1 / (1/T0 + (1/B) × ln(R/R0))

where:

  • T0 = 298.15 K (25°C nominal)
  • R0 = nominal resistance at T0 (e.g. 10,000 Ω for a 10 kΩ NTC)
  • B = Beta constant from datasheet (e.g. 3950 K for many 10 kΩ NTC types)
  • R = measured R_NTC

To convert to Celsius: T_C = T − 273.15

Beta equation accuracy: ±0.5°C over a 50°C range is typical. For wider ranges, use the three-parameter Steinhart-Hart equation:

1/T = A + B·ln(R) + C·(ln(R))³

The Steinhart-Hart coefficients A, B, C are provided in thermistor datasheets or can be calculated from three resistance/temperature data points. This achieves ±0.01°C accuracy over a 100°C range.

Lookup Table vs Formula

For resource-constrained microcontrollers (8-bit MCU with limited floating-point), compute accuracy vs speed trade-offs exist:

  • Steinhart-Hart formula — most accurate, requires floating-point arithmetic.
  • Beta equation — simpler floating-point calculation, ±0.5°C.
  • Lookup table — store (ADC code, temperature) pairs at 1–5°C intervals, interpolate between nearest entries. Requires ROM space (100–200 bytes for ±1°C interpolation over 0–100°C), no floating-point needed.

For typical embedded applications (Arduino, STM32, ESP32), the Beta equation with floating-point arithmetic is the standard approach. It executes in a few microseconds on any modern MCU.

Optimising the Voltage Divider Fixed Resistor

For maximum voltage resolution across the measurement range, set R_fixed equal to the geometric mean of the thermistor's resistance at the range endpoints:

R_fixed = √(R_at_T_min × R_at_T_max)

This places maximum sensitivity at the centre of the measurement range. For most applications, selecting R_fixed ≈ R_NTC at the operating midpoint temperature is practical.

For the ADC input voltage divider circuit — especially when the thermistor is read by a high-impedance MCU ADC — the Thevenin equivalent source resistance of the divider is R_fixed ∥ R_NTC. This should be kept below ~10 kΩ to avoid significant ADC input charge-transfer errors on SAR ADCs with typical sample capacitances of 5–20 pF.

Sensor Interface PCB Design

  • Switch power to reduce self-heating: Drive the top of the voltage divider from a GPIO configured as output, not from a permanent power rail. Turn on the GPIO, wait 1 ms for settling, sample the ADC, then turn off the GPIO. This eliminates continuous current flow and self-heating during idle periods.
  • Add an RC filter on the ADC input: A 100 Ω series resistor + 100 nF capacitor directly at the ADC pin (cutoff ≈ 16 kHz) filters switching noise from the GPIO turn-on transient and any EMI picked up by thermistor wires. This also forms part of an anti-aliasing filter as described in sensor signal conditioning basics.
  • Use short, twisted-pair cabling for remote sensors: For thermistors mounted off-PCB (attached to a heatsink, inside a product enclosure), twisted-pair wire with a shield reduces capacitive pickup of switching noise. Keep the cable below 1 m where possible to minimise cable capacitance at the ADC input.
  • Precision fixed resistor: Use a 1% or better metal film or thin-film SMD resistor for R_fixed. A 5% carbon film resistor adds ±5% to the resistance value, which translates to a significant temperature offset error.

For sensor interface circuit design as part of a complete product, Zeus Design's electronics engineering team provides full sensor integration support from schematic through to production.

Design Considerations

  • Check the thermistor's rated temperature range: Most 10 kΩ NTC thermistors are rated −40°C to +125°C, but low-cost versions may only be rated to +85°C. Use a rated 105°C or 150°C type if the sensor will operate near high-power components. Verify the maximum continuous temperature against the datasheet.
  • Match the B constant to your actual thermistor: The nominal B value printed on a reel label or distributor page is sometimes the B25/85 value (calculated between 25°C and 85°C), while your application may require the B25/50 or B25/100 value. Using the wrong B constant introduces a systematic offset across the measurement range. Confirm which temperature range the datasheet B constant applies to.
  • For tight accuracy, calibrate: Even with the correct Steinhart-Hart coefficients, individual thermistor tolerances are typically ±1% in resistance at 25°C (±0.25°C). For medical, HVAC, or refrigeration applications where ±0.5°C or better is needed, perform a one-point or two-point calibration against a reference thermometer and store offset/gain correction in non-volatile memory.

Common Mistakes

  • Using the wrong B constant: The B value from a distributor's search result is often the B25/85 constant. If you're measuring in the 0–40°C range, the B25/50 constant (usually lower) gives a more accurate curve. Always read the full datasheet and confirm the B constant definition.
  • Forgetting the non-linearity when mapping ADC range to temperature: If you need to report temperature in 1°C increments using a fixed lookup table, the table must be denser at the cold end (where resistance changes rapidly) and can be sparser at the hot end. A uniform ADC-count-to-temperature lookup based on a linear assumption will show large errors at extreme temperatures.
  • Using a high-impedance fixed resistor value (>100 kΩ) to reduce self-heating: High-value resistors do reduce self-heating current but make the divider output impedance very high — potentially too high for an SAR ADC to sample accurately without extended acquisition time. Either use the extended acquisition time feature (if available on the MCU) or use a unity-gain op-amp buffer between the divider and the ADC input. See what is an op-amp? for buffer circuit details.

Frequently Asked Questions

What is the Beta (B) constant of a thermistor and how do I use it?
The Beta constant (B) is a material property of the thermistor's semiconductor oxide that characterises how steeply its resistance changes with temperature. It is derived from two resistance/temperature data points: B = ln(R1/R2) / (1/T1 − 1/T2), where temperatures are in Kelvin. Once you have B (from the datasheet or calculated from measured data), you can convert any measured resistance R to temperature T using: T = 1 / (1/T0 + (1/B) × ln(R/R0)), where T0 = 298.15 K (25°C) and R0 is the resistance at 25°C. The Beta equation typically achieves ±0.5°C accuracy over a 50°C range; for tighter accuracy over a wider range, use the three-parameter Steinhart-Hart equation instead.
How do I choose the fixed resistor value in a thermistor voltage divider?
For best measurement sensitivity (maximum voltage swing per degree of temperature change), set the fixed resistor equal to the thermistor's geometric mean resistance across the measurement range: R_fixed = √(R_min × R_max). For a 10kΩ NTC measured from 0°C to 80°C (where the thermistor ranges from roughly 30kΩ to 2kΩ), R_fixed = √(30,000 × 2,000) ≈ 7.75 kΩ — use 8.2 kΩ from the E96 series. Practically, R_fixed = 10 kΩ is a common choice for a 10 kΩ NTC, placing the divider midpoint close to the 25°C nominal resistance. Use a precision 1% metal film resistor for R_fixed to avoid adding tolerance errors on top of the thermistor's inherent non-linearity.
What is thermistor self-heating and how much does it matter?
Self-heating is the temperature rise in a thermistor caused by the measurement current flowing through it. Power dissipated: P = V² / R_thermistor (or V × I). Each thermistor has a dissipation constant δ in mW/°C: temperature rise = P / δ. A typical SMD NTC in still air has δ ≈ 1–2 mW/°C. If 1 mW flows through it (e.g. 100 µA through a 100 kΩ thermistor), the temperature error is 0.5–1°C. For high-accuracy measurements, limit excitation current to keep self-heating below 0.1°C — typically meaning < 200 µA through a 10 kΩ NTC, which limits excitation voltage to < 2 V. In practice, power the voltage divider from a switched GPIO pin rather than the permanent 3.3 V rail to eliminate self-heating during non-measurement periods.

References

Related Questions

Related Forum Discussions