Project Overview
The "Precision Thermos" is a foundational exploration into Analog Signal Conditioning. While modern digital sensors (like the DS18B20) simplify temperature sensing, using a raw NTC Thermistor provides a deep look into the physics of semiconductors and the mathematical modeling required to linearize non-linear analog data. This project converts a shifting resistance into a precise digital readout on a 16x2 LCD, demonstrating the bridge between physical heat and binary logic.
About Thermistors
Thermistors (thermal resistors) are temperature dependent variable resistors. There are two types of thermistors, Positive Temperature Coefficient (PTC) and Negative Temperature Coefficient (NTC). When the temperature increases, PTC thermistor resistance will increase and NTC thermistor resistance will decrease. Thermistors are highly accurate (ranging from ± 0.05°C to ± 1.5°C), but only over a limited temperature range that is within about 50°C of a base temperature. The working temperature range for most thermistors is between 0°C and 100°C.
Technical Deep-Dive
- The NTC Thermistor Physics:
- Negative Temperature Coefficient: Unlike standard resistors, NTC thermistors are made from sintered metal oxides that decrease in resistance as temperature increases.
- The Voltage Divider String: The Arduino can’t measure resistance directly, it can only measure voltage. The Arduino will measure the voltage at a point between the thermistor and a known resistor. This is known as a voltage divider. The equation for a voltage divider is: $V_{out} = V_{in} \times \frac{R_{fixed}}{R_{therm} + R_{fixed}}$. This equation can be rearranged and simplified to solve for R2, the resistance of the thermistor.
- Linearization via Steinhart-Hart:
- Logarithmic Modeling: The relationship between resistance and temperature is non-linear. The firmware implements the Steinhart-Hart Equation: $1/T = A + B\ln(R) + C(\ln(R))^3$ where $T$ is temperature in Kelvin and $A, B, C$ are coefficients specific to the thermistor model. This mathematical abstraction allows for an accuracy of ±0.1°C across the common operating range.
- ADC Quantization & Precision:
- 10-bit Resolution: The Arduino Nano's ATmega328P features a 10-bit ADC, meaning it maps the divider voltage to a value between 0 and 1023. At room temperature, each digital "step" represents a fraction of a degree, but as the thermistor reaches extreme temperatures, the resolution decreases—a vital consideration for industrial probe design.
Engineering & Implementation
- LCD Interface (Parallel vs. I2C):
- The project utilizes the standard LiquidCrystal library to drive the 16x2 display. A 10k potentiometer is used to adjust the V0 contrast pin, ensuring readability under varying ambient light conditions.
- Thermal Mass & Stability:
- Self-Heating Bias: A critical engineering challenge is "Self-Heating"—the phenomenon where the current flowing through the thermistor actually warms it up, skewing the reading. The firmware mitigates this by using a low-current divider and periodic sampling rather than a continuous read stream.
- Signal Stabilization:
- To prevent "Jumping" values on the display, the code utilizes a Running Average Filter. By taking ten rapid samples and calculating their mean, the system smooths out electrical noise from the jumper wires and power rail transients.
Project Demonstration
Please watch the complete video to know how it works. And like, share, and comment on this video. If you are new, subscribe to my channel and follow on Arduino. I hope you enjoyed my project. Thanks!



Conclusion
Precision Thermos acts as a gateway to professional sensor engineering, showing how logarithmic math and precision hardware can transform a simple variable resistor into a reliable laboratory instrument.
Thermal forensics: Mastering the non-linear world through logarithmic logic.