Created by
Created October 30, 2012
Last modified April 15, 2013
Tags celsius   explain   newbie   ntc   ntc-b57861-s861  


A converter from temperature to voltage using a NTC sensor, to be used to control a computer fan.
You’ll find “strange” objects and some explanation ...


Warning! The “Time Domain Simulation” will work as expected. However, when you switch from “Build” to “Simulate” there is an error message complaining about “invalid characters” in the expressions (and label names), but the error doesn’t stop the solver from working. ---> I think it’s a bug - not a feature (

This circuit plots the Output of the NTC converter from 25 to 85 °C at the temperature sensor in a Time Domain Simulation.

Because this is part of an other project I want to use the Time Domain Simulation. That would be fairly “easy” but I need the NTC at 25°C for about 100us and then going linearly up to 85°C within 200us (because of the other project).

I know that this is not possible in reality but the other project is a PWM circuit with 25kHz, so I want to see it from minimum to maximum duty cycle.

“Behavioral sources” are used to create the required (temperature and NTC) signals over time. The signals are fed into labels which are then used in the next stage.

Because there is no behavioral resistance (variable by an expression) in CL, the NTC has to be represented as a behavioral current source, governed by the desired current through the NTC.

I’ll start from the beginning to explain (I do this because otherwise I won’t know what’s going on here after three months):

1) I always use a bench top power supply to correctly power up my circuits, as I’ve seen what can happen if you don’t (shame on CL Time Domain Simulation). My power supply simply ramps up from zero to 5 volts in 10 usec and has an internal resistance of 0.1 Ohm.

The power supply feeds a label which is used in the main converter circuit and in my “Load”. The load is necessary because my converter is connected to the control input of a 555 - timer which consists of three 5k resistors. This is a significant load in respect to my R33 collector resistor.

The main converter is simple because I don’t need linearity or precise temperature readings. I want the fan to run silently up to 40°C and then going up to full speed at about 70°C. The NCT is placed at the air outlet of the power supply. The cap at the Base is now disconnected to enable the fast temp respond, when connected it will help to start the fan with full duty cycle for about one second on power on.

2) The temperature labeled “°C” is derived from the time base of the Time Domain Simulation. The LIMIT - function takes care of the desired time range (from 100 to 300 usec) and strips down the time information from the time base (dividing by 1u).The label’s value is in °C, however, due to the “misuse” herein fact it is in “Volts” (a behavioral voltage source can’t produce °C) so the plot reads 1 Volt for 1 °C.

3) The NTC resistance value is calculated using the temperature labeled “°C” in an formula which I found from the resistor values. The signal in fact is in Ohm, but the plot reads Volt. However, the formula to calculate resistance from temperature is not perfect, thus it gives only 9.37 kOhm at 25 °C input (which would be 27 °C).

4) The last label “NTC.I” represents the desired current through the NTC. This was really a surprise to me, because it divides the voltage at the NTC by the calculated (desired) resistance. This would be easy if we’d only know the voltage - but the simulation knows! The plot in uVolts are to be read as uAmps. To be honest: I can’t follow the CL - calculation here in detail, even when I take the base current into account the values seem to be a bit strange. But it works!

For the plots (use the Time Domain Simulation, press “F5”): The first graph (blue) is the converter’s output. There is some "pffftsss" when power is established (nice!) In the plot below there is the temperature (blue) and the NTC’s resistance (orange) using the scale at the right … in Ohms (oh, very nice!!!) OK, the temperature is in Volts, hmmmmm …. To calculate the resistance there was a formula (expression) added: V(NTC.1)/I(I31.nA). Scroll down to see the third plot, the reading from the label … in kVolts …

OK, I have tested the converter (and more) on my breadboard: It works. And that’s what it should do.

My conclusion: Simple. Good. CL. However, there is a long way to go to make it foolproof. Thanks CL !!!


No comments yet. Be the first!

Leave a Comment

Please sign in or create an account to comment.

Revision History

Only the circuit's creator can access stored revision history.