NTC Thermistor Fan Controller

An NTC, an LM358, and a logic-level MOSFET — your first analog thermostat.

Difficulty: Breadboard. Estimated build time: about 40 minutes. Estimated parts cost: about US$3.50. 8-line bill of materials. Compare supplier offers when available. A self-contained thermostatic fan controller that turns a 12 V brushless fan on once a heatsink, enclosure, or any surface it is taped to crosses a temperature you dial in with a single potentiometer.

Build the NTC sensing divider

Place the 10 kΩ NTC thermistor between Arduino A0 (or just a probe point) and GND, with a 10 kΩ fixed resistor from +5 V down to that same node. This is a classic resistor divider: at room temperature both resistors are 10 k so V_mid sits at 2.5 V. As the thermistor heats up its resistance drops — so V_mid goes DOWN as temperature rises. We will flip the legs in the next step so the voltage rises with temperature; that makes the comparator wiring much easier to reason about.

Flip the divider so V_sense rises with heat

Move the thermistor to the top half: 10 kΩ NTC from +5 V to the midpoint, and the 10 kΩ fixed resistor from the midpoint to GND. Now when the NTC heats up its resistance drops, less voltage falls across it, and more lands on the fixed resistor — V_sense climbs. Verify with a multimeter (about 2.5 V at room temp) and then pinch the NTC between your fingers: the reading should rise to 2.7–2.9 V. Hot equals high makes the comparator threshold easy to set.

Wire the LM358 as a comparator

Place the LM358 across the breadboard gap. Pin 4 → GND, pin 8 → +5 V, with a 100 nF ceramic across pins 4 and 8 right at the chip — without it the comparator will oscillate near the threshold. V_sense from the divider goes into pin 3 (the + input). The 10 kΩ pot's end legs go to +5 V and GND; the wiper (middle leg) goes to pin 2 (the − input). That wiper voltage is the temperature setpoint. Leave pin 1 (output) for the next step.

Add the MOSFET and the fan

The LM358 output (~20 mA) cannot drive a 12 V fan directly — use the IRLZ44N as a switch. LM358 pin 1 → 220 Ω → IRLZ44N gate (the series resistor tames the inrush spike charging the gate capacitance). Add a 10 kΩ pull-down from gate to GND so the MOSFET is definitively off when the comparator is low. Source → GND. Drain → fan's negative wire; fan's positive wire → +12 V. Finally, place a 1N4007 reverse-biased across the fan, cathode to +12 V. The fan is inductive — that diode catches the flyback spike and saves the MOSFET.

Set the threshold and test

Power up. With the NTC at room temperature, turn the pot slowly until the fan kicks on, then back off until it just stops — you are now sitting right on the threshold. Pinch the NTC: within seconds your body heat raises V_sense above the setpoint and the fan spins. Let go, the sensor cools, and the fan stops. The on/off transition will chatter if temperature dwells near the setpoint; production designs add a 1 MΩ positive-feedback resistor from output to pin 3 to introduce 0.1 V of hysteresis — clean snap action, no buzzing.