This is the basic idea of the PWM fan control circuit
The following project is a PWM fan control, especially designed to be used for PC modding. It is very easy to be built and it can efficiently control all DC fans to rpm as low as 450 rpm (the lowest limit has to do with the fan type and manufacturer). It uses ONLY one 555 timer and a few other components, and it can be powered also directly from the PC power supply, from the 12 Volts line. (see the molex pinouts and get power from your PC)
Advantages over other controllers
The complete circuit is composed by a 555 and 9 more cheap and easy to find components, and can be composed in minimal PCBs or prototype boards.
PWMs will generate a distinctive kick noise
Well, actually it does not send directly PWM pulses to the fan, although that was the original idea. When you PWM a fan directly, it causes some acoustic noises. This has to do with the torque kick. The PWM will send interrupted pulses to the fan. Each time a pulse hits, it will 'kick' the fan to revolve. This kick will cause a 'tick', and all ticks together will cause the distinctive sound when the fan directly connected to a PWM generator.
I tried several ways to eliminate this noise. The most effective one was to increase the PWM frequency. Higher frequencies generates higher frequency noises. Above acoustic spectrum (20KHz) no noise could be heard at all!. Yet, as you will find out later on this article, i was not pleased with this solution. I wanted to have also rpm feedback from the 3rd cable (tach) of the fan. Here is another High frequency PWM fan DC motor controller.
Lower frequencies on the other hand, could reduce this noise enough, but not eliminate it. I found a 2.4Hz to be low enough not to be so noisy, and high enough to control the fan efficiently.
No more kicking noise!
But still that was not a solution. It was rather a pit stop, because it was getting late and i had to go to sleep. The next day i came up with another solution. I would turn the PWM control circuit into a switching mode power supply! By controlling the voltage across the fan, someone can control the rpm. Using a PWM voltage regulator i could accurately and efficiently control the speed of the fan. The results where astonishing! The fan generated enough torque to revolve in really low rpm, so low that i do not intend to use. I could stall it by hand and the fan was capable to start again revolving in low rpm. And what about the 'kicking noise'? No more kicking noise!!! Absolutely not. Nothing. Quite like the breathe of a baby. And at lower speeds, as low as 600-700rpm... almost soundless.
The circuit in operation
Watch the following video to see this circuit how smooth and accurate can control the fans even in low rpms.
Back to the Tech-labs
The circuit
The circuit is based on the theory of the 555 connected as astable multivibrator, with a slight change. The capacitor will be charged and discharged from different ways each time. Through the left diode shall be charged, and through the right diode shall be discharged. Therefore, the charge and discharge times will be different while the frequency of oscillation shall be every time the same. The frequency will be calculated from the total potentiometer value (from side to side), but the duty cycle will be according to the position of the middle potentiometer pick-up.
The 555 will create a series of PWM pulses and will be driven directly to the gate of the MOSFET. The MOSFET is chosen to be big enough to carry enough loads, up to 9.2 amperes. You can choose a MOSFET according to your needs.
The MOSFET will generate enough power so that the motor will start revolving. The capacitor across the MOSFET is the solution to the'kicking sound'. The MOSFET will send to the motor pulses according to the pulses generated from the 555. If you remove the capacitor, you will definitely hear this annoying sound. The capacitor will smooth the voltage across the motor and therefore the power driven to it will be smooth, avoiding the torque kicks.
You can find more information about switching power supplies in this page
There is more! Speed control and rpm feedback from 3-wired fans!!!
The basic idea of this circuit was to have a 3-wire fan controlled with PWM and simultaneously have rpm feedback. There are of course 4-wire fans exactly for this application, but i already half have a dozen of 3-wire 120mm silent cooler master fans.
The problem is that when you send PWM to control a 3-wire fan, from the third wire you will no more get rpm feedback, but the PWM pulses itself. And this is because a pure PWM will completely cut-off the power once in each pulse. If you want to know exactly the reason for this, then go to the article "How PC Fans Work"
One idea was to use PWM to control it for a long time and then for a few time send constant current, as long as needed for a full pulse. At this time feedback could be taken. yet, this would require a microcontroller. This method is called "Pulse Stretching", and i have make a circuit to demonstrate this method. Go to the page "PWM 3-Wires Fan Controller with RPM feedback (Pulse Stretching Method)"
With this circuit, there is always a constant voltage across the fan and therefore feedback from the third wire can be taken at any time. But for simplicity, the feedback will be discussed in another circuit.
Watch the following video that demonstrates this circuit in operation, and the feedback pulses are shown in the screen of the oscilloscope.
Hello kerororo. 250mA is way bellow the mac current (this mosfet can carry up to 8A if i remember correct). so there is no problem about the current. The 555 works? Do you get pulses out of it? If you do, then most likely the mosfet is fried.
For the diode, you can use the classic 1N4004 or bigger.
At 11 August 2010, 15:57:28 user kerororo wrote:
Hi,
the circuit worked perfectly for the first few tries but then on the 4th try, there was no more pulses(the fan runs at max). Did I fry my ICor is there some other problem? My fan takes up a lot of current.. 0.25A to be exact. Is this over the specs of this circuit?
Can a protection diode connected in parrallel to the fan solve the problem assuming that it is back current due to emf? What kind of diode and rating would i need?
At 22 June 2010, 18:59:42 user Kammenos wrote:
Stian i have exactly what you need:
http://pcbheaven.com/circuitpages/Two_Speed_Temperature_Fan_Controller
Starts at a specific temperature at low speed (PWM controlled again) and runs at full speed at a higher temperature. I have it installed in my workbench PC cabinet.
At 22 June 2010, 7:41:03 user Stian wrote:
What would I do if I wanted to use a temperature sensor?
I asume this circuit will speed up the motor if the resistance decreased.
I would need something that would start the motor at 60C and run it full speed at 80C.
At 17 April 2010, 3:28:23 user dylan wrote:
I don't know where to find the schematic or videos or whatever it is that pertain to this discussion. Any help?
At 24 March 2010, 14:06:35 user Kammenos wrote:
Hello PDS,
I really like your question! Thanx!
Indeed, the pins 3 and 7 seems to be reversed. It was a test actually inspired from another circuit (that I do not really remember the page). I suggest you read the theory of operation of the 555 first (http://pcbheaven.com/wikipages/555_Theory/). In this page, you will see what is inside the 555. The pin 3 is driven from the Q of the FF through an amplifier, while the pin 7 is connected to the collector of a transistor that has the emitter grounded. In normal condition, this transistor would discharge the capacitor when -Q was HIGH. But in this circuit, this transistor will sink the gate of mosfet instead. I have answer half of your question. As for the pin 3, it will effectively discharge the capacitor when it is LOW. Moreover, if you notice, there is NO external power supply to charge the capacitor, as exists in a normal connection. That is because the same pin3 will charge the capacitor when it is high. Neat eh?
At 11 March 2010, 22:29:54 user PDS wrote:
I'm a little confused. Sorry for the basic question, but I've built this circuit, and it works beautifully. I had to swap a 1uF cap instead of the 10nF as suggested for my particular fan, but I get a smooth speed variation between almost stalled and full speed. (Average voltage from 5V to 12V.)
However, when I compare this circuit to a standard Astable Multivibrator, pins 3 and 7 appear to be reversed (?). Typically, pin 3 is the output and pin 7 is the discharge. I understand the variable resistor and diode change, but how can this work with the output swapped with the discharge pin?
Sorry if this is a dumb question, but I'd like to understand *how* it works as well as using it myself. Great write-up BTW - even *I* could follow it.
At 24 October 2009, 5:51:13 user kammenos wrote:
Yes Lanz you are right. I'm sorry. I will fix this ASAP. The correct value is 1K
At 22 October 2009, 4:36:08 user lanz wrote:
The resistor in the picture shows 1K but the description shows 10K?
At 14 July 2009, 12:26:38 user theking wrote:
See the following link:
http://www.micrel.com/page.do?page=/product-info/products/mic502.shtml
At 12 July 2009, 18:48:05 user kammenos wrote:
Lanz:
The 470 capacitor needs to be placced across the mosfet. That is the right place. For better control, you can change the frequency by adding larger capacitor in place of the 10nF (eg 1 micro farad instead), or with larger potentiometer value (eg 500K). That shoud fit you just fine.
For LED dimmer, you only need to remove the 470uF capacitor completely and add the correct resistance according to your LED configuration you use. Check out the following pages for this:
http://pcbheaven.com/wikipages/LEDs/
http://pcbheaven.com/drcalculus/index.php?calc=leds
At 10 July 2009, 9:19:19 user lanz wrote:
Finally it works for me.But still got some problems:
1)I test it without the 470μF Cap,there is kicking sound like what kamenos said but the difference in speed can seen very well with every turn of the VR.
2)I test it with the 470μF Cap placed parallel across the motor like the circuit b4 this and second time at the mosfet like the circuit above,the kicking sound is no more but the speed differ only slightly(not nice).
I like the 1st one but there is a kicking sound.How to solve this problem?
If want to use as a LED dimmer,where to modify?
At 10 July 2009, 9:18:25 user lanz wrote:
Finally it works for me.But still got some problems:
1)I test it without the 470μF Cap,there is kicking sound like what kamenos said but the difference in speed can seen very well with every turn of the VR.
2)I test it with the 470μF Cap placed parallel across the motor like the circuit b4 this and second time at the mosfet like the circuit above,the kicking sound is no more but the speed differ only slightly(not nice).
I like the 1st one but there is a kicking sound.How to solve this problem?
At 10 July 2009, 5:30:38 user lanz wrote:
Thats why maybe it doesnt work on my circuit.How to test the output on multitester,volt reading or current reading?
At 9 July 2009, 16:48:38 user kammenos wrote:
Oh, and as for the capacitor, it may be omitted if someone wants PWM for the motor. If the motor kicks (the distinctive kicking sound) then the large capacitor must be connected. It is across the mosfet now.
My apologies for the mistake. The circuit was copied in a hurry and was also the first one.
At 9 July 2009, 16:39:38 user kammenos wrote:
But of course, how stupid of me. I confused n with p. My apologies. I have changed and corrected the schematic.
Thank you theking very much for your comments and noting this error.
At 8 July 2009, 12:21:59 user theking wrote:
1 pF = 0.000001 uF;
1 uF = 0.000001 F;
C = 10 pF => 0.000000000010 F
R = 100 K => 100000 OHM
R x C = 0.000000000010 x 100000 = 0.000001
F = 1.44/(RxC) = 1.44/0.000001 = 1.440.000 Hz (1.44 MHz)
Check your math.
The minimum value of C to 555 works correctly is 1KpF (1000 pF) and the 470uF cap across the motor is not correct for a PWM circuit.
At 8 July 2009, 4:41:51 user kammenos wrote:
The video is from this circuit, so this is the first clue that it does work after all.
You have an error in your calculations by selecting the proper units:
R=100K => R = 100.000 Ohms
C=10pF => C = 0.00000001 F
F = 1.44 / (RC) => F = 1.44 / (100000 x 0.00000001) => F = 1440 Hz
At 8 July 2009, 1:17:08 user theking wrote:
This can not work!
The 555 oscillation frequency is:
1.44/RC = 1.44 / 0.1 (Mohm) x 0.00001 (uF) = 1.44 MHz
The 555 does not operate at this frequency!
At 29 June 2009, 18:30:53 user kammenos wrote:
lanz:
1. The protection diode could be a general 1N4001 diode, but if you use the 470UF capacitor, you do not need it.
2. If you want to use a fuse protection, you should put it in series to the circuit. The circuit itself draws just a few mAmps, thus the fan will determine the fuse. You could as well calculate the fuse by the IRF520 capacity that is 9.2 amperes. In that case, you could use a fuse around 8 Amperes.
3. From pin 8 or 4 of the 555, a resistor of 330 Ohms will be connected and then the positive pin of the LED will follow. The negative pin of the LED will go to negative pole of the circuit.
4. I am sorry this cannot be done with straight-forward way. You could use a digital potentiometer circuit or IC, but that would be not a nice solution.
At 29 June 2009, 7:38:49 user lanz wrote:
1)What is the protection diode's value that to be fixed parallel to the motor?eg.like 1N5815 for the left diode.
2)If i want to fix protection fuse,the maximum capacity of the fuse must be how many ampere?How to check it using multitmeter?
3)I want to add a LED as an indicator showing the circuit is working and the fuse is not blown.How to modify the circuit above?
4)Can the potentiometer replaced with any pushbutton switch?
Example-Two pushbutton switch is used to control the volume of a sound.
One to increase and one to decrease the volume.
Can this system applied in this circuit?
If can,how is the circuit will be?
At 12 June 2009, 4:22:53 user kammenos wrote:
Yes indeed, different fans or loads will require different PWM frequency. If the load draws too much current, it could be that the frequency should be increased (decrease the cap value) and vice versa.
At 11 June 2009, 21:37:45 user Tiki wrote:
Nice and is working, but with my Glacialtech fans i needed to replace the 10pF with a 47pF to get a large and smooth area of control.
At 11 June 2009, 15:18:08 user Kammenos wrote:
Yes no problem!
The circuit will draw as much current as it needs. If there is no short-circuit, all will work just fine. You could for security reasons add a quick acting fuse in series to the power supply if you may.
At 11 June 2009, 4:50:25 user Lanz wrote:
Can i use this circuit to control my car\'s fan speed.Can it support high current from the car battery?
At 4 June 2009, 17:41:49 user kingsley wrote:
wow this circuit is great
At 4 June 2009, 16:38:23 user kammenos wrote:
Hi XTAL.
The purpose of this project was (and is) the PWM signal generation. That's why the capacitor (470uF) is added at last. This project can be used in general for example dimming LEDs. Also, this project is a small research for the next circuit that i will demonstrate (hopefully this weekend). My PC box has 4x120 fans and 2 computers inside, as well as some peripherials like a router, switch, electronic staff....
At 4 June 2009, 12:00:47 user CrystalRadio wrote:
Now that the fan\'s tach signal can be used by the motherboard, how about using the motherboard\'s fan control output to control the 555 circuit? There would still be a need to adjust the min speed for each fan to create a broader speed range than would be possible using the motherboard\'s fan speed output alone.
Good Work! Good Luck! And Goomorning! XTAL
At 21 May 2009, 22:08:06 user kammenos wrote:
Go for it. It's easy and it works. We wait for your project photos
At 21 May 2009, 1:35:05 user bravo wrote:
I wonder if Im smart enough to do this one yet I got 3 80mm tsunami that kick out wicked af but no controllers for them and their 3 wire hook up
At 18 May 2009, 12:48:32 user kammenos wrote:
meant 1.55 US dollars ;)
At 14 May 2009, 19:55:54 user kammenos wrote:
and a total price of 1.55 (excluding the PCB and the box) makes it the cheapest fan speed controller :D
Subscribe and receive email notification for new comments!Learn more...