Temperature Controlled Fan Speed Using PWM

Introduction: Temperature Controlled Fan Speed Using PWM

I have here a very simple yet very effective little layout to control the speed of a fan according to a changing temperature.

I am using a Microchip TC648VPA chip which does all the work for us.

You can find the datasheet of this chip here: http://ww1.microchip.com/downloads/en/devicedoc/21448c.pdf

The matérial needed for this setup is as follow:

1x tc648vpa chip
1x 7805 voltage regulator
1x n-channel mosfet
1x 100uF capacitor (polarised)
1x 10uF capacitor (polarised)
1x 1uF capacitor (ceramic)
1x 10nF capacitor (ceramic)
1x 100Kohm NTC resistor
1x 37Kohm resistor OR 1x 50Kohm trim pot
1x fan (12 to 24Vdc)
1x 100nF capacitor (noise absorption on the fan) might vary depending on your fan!

This chip has a fault pin which can be used if you want to, it will go LOW when the temperature mesured is higher than the maximum preset.
If you want to use this feature you will need as well:

1x LED (I use red)
1x 330ohm resistor
1x 1Kohm resistor
1x 2n2222 NPN transistor

Step 1:

In the list of material you have seen a 37Kohm resistor and a 100Kohm NTC.

These will give you a temperature setting from 25 to 55degrees where the fan will vary from 0 to 100% duty.
Above 100% duty and the fault output will be pulled LOW, turning on our LED in this setup but it could as well be used on a microcontroller input pin etc etc...

In place of the 37Kohm resistor you can use a 50Kohm trim pot, which will allow you to modify the temperature zone at which the fan will work. I added this possibility in my setup but was not using it on this particular one where the pictures were taken.

I will not go too much into the calculations details for the temperature settings as they are very well explained and documented on the datasheet of the chip, but in a few words here is how it works.

The pin 1 of the chip, called Vin, is where your voltage will be inputed to regulate the fan. It has a minimum value of 1.26V and a max value of 2.65V which will be your 100% fan duty.

It is then with your NTC specs and resistors (or pot)  that you will set the fan speed wanted accodring to a set temperature. Using the OHM LAW it is fairly straight forward to calculate.

I have made up some little boards, they mesure 38mm by 33mm, you can find the layout used on them in using the schematic which is here as well. It works great and I am even using them in the professionnal world out there at some customers of mine.

You can drive pretty big sized fan, all you have to do is have a MOSFET which can put up with the current and an appropriate capacitor used as a filter to smooth down the perturbations created by the fan.

Feel free to contact me if you would like me to add some infos or answer any questions. I have as well possibility to ship a few boards, complete setup or board alone for a small fee.

UP! Contest

Participated in the
UP! Contest

Be the First to Share


    • CNC and 3D Printing Contest

      CNC and 3D Printing Contest
    • Rice & Grains Challenge

      Rice & Grains Challenge
    • Puzzles Challenge

      Puzzles Challenge



    Question 3 years ago on Step 1

    hello I have some 10k ntc I can adapt them to the circuit you indicated?
    Hello and thanks

    4 years ago

    how do I get hold of you to buy the completeday setup

    any alternative for the microchip tc648vpa chip? i think it is not available here in my country. thanks!


    7 years ago on Introduction


    I am thinking about using a PC cooler for cooling my 2N3055 power transistor for my power supply. The thing is that the fan has the fourth wire which is supposed to be PWM control. Can i just connect the output of the microchip to the PWM wire?

    I would like to turn on the fan at about 55 degrees and continuously increase speed towards 100 degrees at which point the fan would work 100% speed afterwards.(Maybe the overheat alarm is a good idea, haven't thought of that before)

    Thank you!


    7 years ago on Introduction

    can this be used in a car to control fans for amps


    8 years ago on Introduction


    this is a great product. I intend to use it for some home ventilators control. I would like to ask you to let me know if it is possible to reduce temperature adjustment range from let's say 20 to 26 degrees of Celsius having the fan speed range from 0 to 100%. This would be an example of working in cooling mode, but if I like to make unit working in heating mode, the fan speed should be adjusted from 100 to 0% for the same temperature range. If you have an idea how to do this, please advise.

    I would also like to ask you to send me the the drawing of the PCB in order to save the production time of my unit.

    Thank you in advance for your reply.




    Reply 8 years ago on Introduction

    Hi, thanks for the comment.

    Yes it is all possible. To work in cooling mode, i use a NTC resistor were the ohm value drops when the temperature rises, which makes the voltage rise at the pin of the chip. Providing a bit of calculation and the right NTC it is totally possibleto reduce the range from 20 to 26 degrees.

    To work in heating mode not changing the layout of the board you will have to use a PTC resistor where the ohm value will rise when the temperature rises, making the voltage drop on the pin of the chip which will make the fan ramp down.

    Let me know your thoughts.




    9 years ago on Introduction

    I use them inside electrical cabinets to quieten the noise that a fan would do if always running at full blast. It is better this way I reckon, the fan will only speed up if the temperature rises.