Suppose that you have add some extra fans in your PC cabinet. Maybe they are controlled with a linear rpm controller, or they are undervoltaged with a simple rpm reducing circuit... Or they are controlled with a PWM controller circuit! And suppose that this fan provides also an rpm feedback wire from the tacho (3-wires or 4-wires fan). Usually, simple circuits will not use this wire. Isn't it just a pity to let it just hanging there unused? Wouldn't it be nice after all to have a circuit to check if the fan is working or not, and inform you with a buzzer (or something else) whenever the fan fails to rotate for some reason?
The circuit
Originally, i planned to use a simple missing pulse detector. I did try this circuit. Yet was unable to operate. Why? Because, a missing pulse detector implemented with a 555, will not exactly detect for missing pulses. Instead, it will reset the chip whenever a positive (or negative) period of the input signal arrives, and NOT on a clock transition. The pulses from the fans on the other hand, have a very specific timing. The HIGH and LOW state of the fan has to do only with the position that the rotor. In a full rotation, it will generate 2 pulses. This does not mean that, if the fan is stalled, it will send ONLY positive or ONLY negative! No! It will send the corresponding period of the specific position of the rotor! If you are interested to learn more, check the "How Brushless Motors Work". I explain in details how they work. So, if for example the fan stops in a position that always resets the 555, then it will never sound the alarm. Crap!
Many different design ideas came to my mind and i tested a couple of them. Some did work, some others failed. The most reliable and yet simple design was to convert the output of the fan tacho into voltage and compare it with a comparator or Schmitt trigger. This is the circuit diagram:
First of all, the tacho of the fan is pulled-up with R1, and filtered through C1. So, from there and on, ONLY pulses will pass through. If the fan fails to rotate, no matter if the tacho output is HIGH or LOW, the C1 will become a circuit break (as known from the capacitor theory for DC current).
T1 acts as an amplifier for the input pulses. The C2 is the smoothing capacitor. C2 does the whole frequency-to-voltage work. It charges through R3 and R4, and discharges though R4 and the internal resistance CE of T1. Across C2, the pulses will become direct voltage. The higher the frequency of the pulses, the lower the voltage across C2.
IC1 is an OP-Amp (741) connected as a Schmitt trigger. The input voltage is the voltage generated across the C2. The high and low threshold values are changed through the potentiometer R2. You can use the schmitt trigger calculator to change these values. I have chosen a very small hysteresis - nearly (or less) than 1 volt. The hysteresis can be controlled by the resistor R6. the bigger the resistor, the smaller the hysteresis. The reason i did this is simple. I wanted to have not only a check if the fan is stalled, but also to check if the fan rotates in unusually low rpm, and i also wanted the alarm to turn off if the fan start to rotate again. In other words, i wanted to have an automatic reset of the alarm if after a failure the fan started to rotate again.
Finally, the output of the 741 is driven to the base of a PNP transistor. The transistor will actually reverse the signal and it will also act as a driver for the buzzer. I put the probes in some key-positions of the circuit. Look at the oscilloscope:
The oscilloscope connected on the circuit. I am controlling the circuit with a linear fan controller i made yesterday.
YELLOW: This is what comes from the C1 to the base of T1 GREEN: The T1 output BLUE: The voltage across C2
At about 100rpm, the voltage (BLUE channel) is increased from 5V (@1200rpm) to about 10V.
When the fan is stopped, the voltage is 11.5V
Relay instead of a buzzer
Simply change the buzzer with a 12V relay and it works as is.
You can simple exchange the buzzer with the coil of a 12V relay. It will operate normally, no other change is needed.
Bill Of Materials (First circuit)
Resistors
R1
Resistor 4.7 KOhm 1/4 Watt 5% Carbon Film
R2
100 KOhms potentiometer
R3
Resistor 1.5 KOhm 1/4 Watt 5% Carbon Film
R4
Resistor 47 KOhm 1/4 Watt 5% Carbon Film
R5
Resistor 220 Ohm 1/4 Watt 5% Carbon Film
R6
Resistor 100 KOhm 1/4 Watt 5% Carbon Film
R7
Resistor 10 KOhm 1/4 Watt 5% Carbon Film
R8
Resistor 1 KOhm 1/4 Watt 5% Carbon Film
Capacitors
C1
1 uF 16 Volts electrolytic capacitor
C2
47 uF 16 Volts electrolytic capacitor
Integrated Circuits
IC1
LM741 Operational Amplifier
Transistors
T1
BC547 Switching and Applications NPN Epitaxial Transistor
T2
BC327 Switching and Amplifier Applications PNP Epitaxial Silicon Transistor
The same circuit with manual alarm reset
With slight changes and a pushbutton, you can have manual alarm acknowledge...
I talked above for the hysteresis of the 741. I have chosen a small hysteresis so that the circuit will reset itself when the fan starts to rotate again. In case that you do not want the reset to happen automatically, then you need to change the R6 with a smaller one, like for example 10 KOhms. The hysteresis will be dramatically increased, in some cases (according the setting of R2), it will be as big as 6 volts. So, when the Schmitt trigger changes state, it will be rather difficult to go back to its original state.
To reset the circuit, a pushbutton has been added. The new circuit is as follows:
Bill Of Materials (Second Circuit)
Resistors
R1
Resistor 4.7 KOhm 1/4 Watt 5% Carbon Film
R2
100 KOhms potentiometer
R3
Resistor 1.5 KOhm 1/4 Watt 5% Carbon Film
R4
Resistor 47 KOhm 1/4 Watt 5% Carbon Film
R5
Resistor 220 Ohm 1/4 Watt 5% Carbon Film
R6
Resistor 10 KOhm 1/4 Watt 5% Carbon Film
R7
Resistor 10 KOhm 1/4 Watt 5% Carbon Film
R8
Resistor 1 KOhm 1/4 Watt 5% Carbon Film
R9
Resistor 1 KOhm 1/4 Watt 5% Carbon Film
Capacitors
C1
1 uF 16 Volts electrolytic capacitor
C2
47 uF 16 Volts electrolytic capacitor
Integrated Circuits
IC1
LM741 Operational Amplifier
Transistors
T1
BC547 Switching and Applications NPN Epitaxial Transistor
T2
BC327 Switching and Amplifier Applications PNP Epitaxial Silicon Transistor
Adjusting the circuit
The circuit can be adjusted very easy. Start the fan and wait until the max speed is achieved. If the fan is controlled, then set it in its lowest speed setting. Then turn the potentiometer R2 until the load (buzzer or relay) is actuated. Then, turn it slowly to the other side. When the load is disarmed (eg the buzzer is NOT buzzing or the relay is disarmed), give it another slight turn (just a very slight turn like half a degree). It should be ready. Stop the fan with your hand and see if the load is armed. You will notice a delay. This is normal. Then release the fan. Again you will notice a delay for the load to be disarmed.
In case that you make the second circuit with the manual reset, then you should be aware that the reset will only operate if the fan is rotating. If the fan fails and the buzzer is actuated, it cannot be stopped unless you switch off the power supply.
Great circuit.
But you can also use a LM2907N-8 or LM2917N-8 ( from TI )Frequency to Voltage Converter I.C.,configured as a simple "speed switch" for such applications.As for external components all it needs is 5-7 resistors and 3-4 caps.
At 7 March 2014, 21:05:34 user Gary wrote: [reply @ Gary]
At 25 November 2011, 8:22:01 user Hip wrote: [reply @ Hip]
Hello there,
I tried to follow your circuit(LED+relay). and it doesn\'t activate the relay and LED. The base of T2 is suppose to connect to either Buzzer+ or coil of relay, am i right? I tried to measure the point(base of T2) and getting ~12V. But once i connect to relay then the voltage drop to 2V+ only and it wont active relay... Need some help here. Thx in advance...
It looks like that your relay has a very sensitive coil. That is no problem. You may need to decrease the output with a resistor. Connect a resistor after R8 (and before the transistor) to the ground. Unfortunately i cannot tell you right now the value. I suggest you put a 100K potentiometer and experiment to find the best value.
If you want a 6v relay, then you will need to gove to the transistor's emitter 6V as well instead of 12.
Hi,
I changed the buzzer with a 12V relays. The relays coil is triggered when the fan stop rotating but fail to release when the fan start to rotate again. Measuring the voltage on the output as below:
Rotating : 5.7V
Stop : 11.6V
The voltage on the restart (rotate) is too high for the coil to be released.
What is the current across the output of this circuit. I need to get a suitable resistor to connect in series so that it can probably work with a 6V relays?
Hi,
Another side question. I think to buy a Sunon MagLev fan to replace the current fan. (12V, 6.1W) Stated in the datasheet to send 2 pulses per rev. This fan works with your original circuit?
It looks like that the pulse width is not enough and the capacitor always charges. Make another try. The width that arrives at the transistor can be increased by increasing the capacitor C1. Try 16uF and 47uF and 100uF with the other values as per original circuit. If this does not work as well, then try the larger capacitor and the 5K potentiometer. Which brand is the fan that you use and which type?
Hi,
Replace C2 with 100uF. The buzzer still turn on while fan rotating. But take longer time compare to the old value.
Follow by removing R3 & replace with 470 ohm series with 5k trimmer. The buzzer still turn on but the timing vary with the trimmer position (it take about 1 min for the buzzer to turn on for 1 of the trimmer position).
Any other changes that can be made on the circuit?
Or I need to buy a new fan that match the 2 pulses per rev?
wayne: your fan sends 1 pulse per 2 rev, while the circuit works for 2 pulses per rev. this means that your fan has 1/4 of the required frequency to operate. What you can try is first to increase C2, like 100uF. This will increase the charge time of the cap. If this does not work, then remove R3 completely, and instead put a 470 ohm resistor in series with a 5K trimmer. You will find a suitable position of the trimmer that the circuit works. Remove the trimmer from the circuit, measure it with an ohm meter, add the 470 Ohms resistor and you have the new value of R3 for your fan.I wait for the results.
Hi,
I power the fan with constant 12V.
Hook up the circuit as recommended. The LED blink 1 time with every 2 rev. Does this mean the tacho only send 1 pulse per rev?
Can your circuit still work with this fan?
Any changes I need to make on the circuit to use this fan?
Wayne: You power the fan with constant current or with PWM?
You can verify if the tacho sends 2 pulses per rev, with an LED. Pull up the tacho wire with a 1K resistor. Then connect an LED in series with the tacho wire and the other end (cathode) of the LED connect to the ground. Then put the fan to work. Stop the fan with your hand while it rotates, without removing the power. With your finger, slowly turn the fan. You will then see how many (and IF) pulses the tacho sends with the LED.
I have problem with the circuit.
The buzzer will automatically turn on after 10-15 seconds even the fan is rotating. Turning the potentiometer will only vary the buzzer turn on time. What is wrong with my circuit? Can be tachco signal problem from the China made fan?
I have no oscilloscope with me. Any other method to verify this?
the amperes are irrelevant to this circuit. To work, your fan must have an rpm feedback like the 4-wire pc fans. It will also work with 3-wire pc fans, as long as it is not powered with PWM. The 3-wire fan must be powered with constant dc. The 4-wire can be powered with PWM as well. The power supply is 12V. If different, you must change the input circuitry accordingly
At 11 June 2010, 18:30:38 user tim wrote: [reply @ tim]
what is the maximum ampers you can have for the fan? i want to use a computer water cooling pump as these are slightly more detramental if these fail. will it work?
Check the voltage on the right side of R8 (directly on the output of the 741). If it changes when the rpm changes, then the problem is either the R8 or the T2. Otherwise you need to check across C2 if the voltage changes. If it does, then the problem is with the 741 or most probably the R6. Maybe you need to increase it a little bit. Why won\'t you try the second circuit instead, that has a manual reset, and this way you make sure that your T2 works...
At 6 May 2010, 19:37:38 user kiz wrote: [reply @ kiz]
I am still having problems. Could it be t2? I am using a general purpose PNP transistor instead of an epitaxial type. My buzzer is always on regardless of the fan RPM.
The buzer will sound when the op-amp goes to 0V. Actually, when it drops bellow a specific voltages, but you can take this as "LOW" or 0 volts. The Op-amo is connected between the 12V and the 0V. What about your circuit? Does the buzzer sounds when the fan is stopped? And what do you mean that "it is going off regardless of the fan"?
At 5 May 2010, 22:34:07 user kiz wrote: [reply @ kiz]
so inorder for the buzzer to sound, the output from the opamp should be a negative voltage? Is the opamp supposed to be connected using +12 and -12? or +12 and ground. I'm having some problems with the circuit right now, my buzzer is going off regardless of the fan.
Hello Kiz. I have a very detailed article about the Schmitt Trigger: http://pcbheaven.com/wikipages/The_Schmitt_Trigger
As for the operation: It is as you described, but the outpus goes LOW to allow current through the CE of the transistor. That is why i use PNP instead of a NPN.
At 5 May 2010, 5:51:50 user kiz wrote: [reply @ kiz]
I have some more questions, can you explain the Schmitt trigger more? The voltage at the non-inverting and inverting terminals are being compared. If the RPM is low than the non inverting terminal voltage should be lower than the inverting terminal thus causing the output of the 741 to be high, allowing flow through the PNP transistor? Is this correct?
Thank you Lanz for correcting me. A negative answer to the question "hey i don't think this can be done with a 2 wire fan right?", could non include the 2 wire... You are right, it is only for 3 and 4 wire fans.
As for your question, there is a way to detect fan failure. You can measure with a contactless method the speed of the fan. Or you can use this circuit with a LED/CDR or another pair of light receiver/transmitter to detect if the fins are rotating.
Another method is to detect the current changes in the power wire of the fan. That will require some more job though, and i suppose it will not work for all fans the same.
At 28 April 2010, 14:06:19 user Lanz wrote: [reply @ Lanz]
"No, it is only for 2 or 3 wire fans"
I think u mistakenly typed 2.
Im sorry if im wrong.
It supposed 3 or 4 wire fans rite.
Im looking for similar circuit for 2 wire fans.Is there any circuit for 2 wire fans to detect fan failure?
The potentiometer will set the sensitivity of the circuit. You can control the minimum rpm what the fan will rotate, before the alarm starts to sound. Read the section "Adjusting the circuit".
The relay is not important. It can be used to control higher loads than the simple buzzer. For your school project, the buzzer is just enough! Yet, i recommend you learn more about relays and what they actually do. Follow this link:
http://pcbheaven.com/wikipages/How_Relays_Work
thx for the reply!
could you pls explain as to what the relay does in the circuit?..and is it necessary? also what does the potentiometer do?
im totally new to this:)
Hello Mathew. I have not try this with a battery, yet a 12V 2.3A battery is far enough for the circuit and the fan to operate with not problem. The 741 has a very wide range of operation voltage. You can use the circuit as-is. No need for change.
hi,
have you done this with a battery?
im planning to do this with a 12v 2.3A battery ..can you please give the steps as to how do you connect the circuit?
i want to do this for my high school project
thanks in advance
mathew
First , congatulation for the nice work.As for the project:
Great circuit.I was searching the web for some time for this kind of protection circuit.
I want to protect my pc in case of a pump faillure (I'm using watercooling)and it was a great relief that I found it!