What Is a Thermistor and How Do You Use One?
Last updated 3 July 2026 · 8 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. For higher-temperature or wider-range applications beyond a thermistor's practical limit (typically −40°C to +150°C), see PT100 and RTD sensors or how thermocouples work. See the Temperature Sensors topic for the full set of temperature-sensing guides.
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, since 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):
| Temperature | R_NTC | Vout | ADC count (12-bit) |
|---|---|---|---|
| 0°C | ~32,000 Ω | 3.3 × 10,000/(10,000+32,000) = 0.79 V | 982 |
| 25°C | 10,000 Ω | 3.3 × 10,000/(10,000+10,000) = 1.65 V | 2,048 |
| 50°C | ~3,600 Ω | 3.3 × 10,000/(10,000+3,600) = 2.43 V | 3,013 |
| 80°C | ~1,300 Ω | 3.3 × 10,000/(10,000+1,300) = 2.92 V | 3,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. See how do you budget for error and calibrate a temperature sensor? for sizing self-heating error against the rest of the measurement's error budget.
- 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
How Do You Interface a Digital Temperature Sensor?
Covers DS18B20 (1-Wire, parasite power, multiple devices) and MCP9808 (I2C, alert pin) interfacing — circuit requirements and MCU firmware notes.
Sensor Signal Conditioning Basics
Covers signal conditioning for sensors: op-amp gain, offset, 4-20mA interface, anti-aliasing filter design, ADC input protection, and two-point calibration.
What Is a Voltage Divider and How Does It Work?
A voltage divider splits a voltage using two resistors in series. Covers the Vout formula, loading effect, Thevenin equivalent, and when not to use one.
What Is an ADC (Analog-to-Digital Converter) and How Does It Work?
An ADC converts analog voltages to digital numbers. Covers resolution, LSB, sampling rate, Nyquist, SAR vs sigma-delta architectures, and anti-aliasing filters.
What Is an Instrumentation Amplifier and How Does It Work?
Covers the three-op-amp topology, gain formula G = 1 + 2R/Rg, CMRR, and in-amp applications for Wheatstone bridges and sensor front ends.
How Do PT100 and RTD Temperature Sensors Work?
Covers PT100/PT1000 RTD sensors: 2-wire, 3-wire, and 4-wire connections, excitation current, Wheatstone bridge conditioning, and when to choose an RTD.