An NTC thermistor's resistance falls as temperature rises. Cheap and sensitive, it is common on MCU boards, power supplies and appliances. Datasheets usually give two numbers such as «10 kΩ at 25 °C, B25/85 = 3950 K» plus an R/T table. Here is how to turn them into temperature and what to watch in the circuit.
The B equation
R(T) = R25 × exp(B × (1/T − 1/T25)) T = 1 ÷ (1/T25 + ln(R/R25) ÷ B) ← T in kelvin (°C + 273.15), T25 = 298.15 K
| Temperature | Resistance (10 kΩ, B 3950 K) | Divider (3.3 V, 10 kΩ on top) | 12-bit ADC |
|---|---|---|---|
| −20 °C | 105.4 kΩ | 3.014 V | 3741 |
| 0 °C | 33.62 kΩ | 2.543 V | 3156 |
| 25 °C | 10.00 kΩ | 1.650 V | 2048 |
| 50 °C | 3.588 kΩ | 0.871 V | 1081 |
| 80 °C | 1.270 kΩ | 0.372 V | 461 |
| 100 °C | 698 Ω | 0.215 V | 267 |
TDK's NTC technical information says this exponential law is accurate enough «only for a restricted range around the rated temperature». A real thermistor's B drifts with temperature, so datasheets state which two temperatures define it: B25/50, B25/85, B25/100.
Why B25/85 and B25/100 differ
B is defined from the resistance at two temperatures: B = ln(R1/R2) ÷ (1/T1 − 1/T2). The same part gives a different value for 25/85 °C than for 25/100 °C. The difference looks small but shows at the ends — the 100 °C resistance from B 3950, solved with B 3980, reads 99.3 °C. Use the B closest to your range, or Steinhart–Hart for wide ranges.
Steinhart–Hart: three points for a wide range
1/T = A + B·ln R + C·(ln R)³
Steinhart and Hart published this equation in 1968. Pick three points from the datasheet R/T table — low, middle and high in your range — and solve for A, B and C. It then matches the table exactly at those points and follows it more closely than the B equation in between. Solving is a small linear system, so a calculator helps. The manufacturer's R/T table is still the most accurate; when precision matters, store the table and interpolate.
Divider and fixed resistor
- Put the NTC in series with a fixed resistor and read the midpoint with the ADC. With the NTC at the bottom (to GND), V = supply × R_NTC ÷ (R_fixed + R_NTC), falling as temperature rises.
- A fixed resistor equal to the NTC's resistance at the middle of your range gives the largest voltage change there: 10 kΩ for a 10 kΩ NTC around 25 °C, around 1–2 kΩ to resolve 80 °C well.
- Feeding the divider and the ADC reference from the same supply (ratiometric) cancels supply variations from the ADC count.
ADC count → temperature
The ATmega328P datasheet gives the 10-bit result as ADC = V_IN × 1024 ÷ V_REF; for n bits use 2^n. Backwards: V = ADC ÷ 2^n × V_REF, NTC (bottom) resistance = R_fixed × V ÷ (supply − V), then the B equation or Steinhart–Hart. With the table's setup (3.3 V, 10 kΩ, 12 bits) the signal near 25 °C is about 37 mV per °C, so one LSB (0.81 mV) is about 0.02 °C — it grows towards the ends of the range.
Self-heating
Measuring current warms the NTC so it reads high. The datasheet's dissipation factor δth (mW/K) is the power that raises the thermistor by 1 K, so self-heating ΔT = P ÷ δth. In a 3.3 V, 10 kΩ divider at 25 °C the NTC dissipates about 0.27 mW; with δth = 1.5 mW/K that is about 0.18 K. For precision, lower the divider supply or power it only while measuring. δth depends on the surroundings (still air, liquid…), so check the datasheet conditions.
How it differs from Pt100
- An NTC is sensitive and cheap, but curves vary between products (two 10 kΩ parts with different B read different temperatures) and it is strongly non-linear over wide ranges.
- Pt100's resistance–temperature relation is fixed by IEC 60751, so sensors are interchangeable; industrial controllers and transmitters usually take Pt100. For 2-, 3- and 4-wire connections see the Pt100 and thermocouple wiring guide.
In PortDock
- «NTC Thermistor Calculator» web tool: resistance ↔ temperature by B equation or Steinhart–Hart, divider voltage, ADC counts, a table and self-heating.
- Plot: graph values an MCU sends as «temp:25.3» live and save them as CSV.
- Serial: if a board sends raw ADC counts, receive them in HEX or ASCII and check the temperature with the calculator.
Published 2026-10-23