Regulate voltage of a 12V fan via PWM-Pin.

Hello!

I'm looking for a way to control a 12V fan via Arduino, I have done a little bit of research but my techincal knowledge is zero to none, the programming part shouldn't be the problem.

I want to control the fan with the PWM Pin of the arduino, the fan will be supplied by the power supply unit of the PC. Some data of the fan: 0.26A 12V 1200rpm, the starting voltage is around 3V and I want to be able to control it from stillstand to somewhere near fullspeed (8-10V should be sufficient). If possible, I would like to avoid PWM noise at low fan speeds.

Thanks

Yes you need a filter to smooth the PWM into DC and then a FET to control the load.
This is one I made earlier
Imgur

As the PWM is smoothed there is no PWM noise.

Hello, thanks for your reply. I found your circuit earlier and couldn't quite understand it - I know all the symbols but I'm having trouble to understand, what part the vertical line left of the 2k3065 diodes could be (also I can't find the 2sk3065 diode here in Germany).

Does your controller need two seperate 12V lines, or is it possible to connect them parallel?

Edit: I took a look at the datasheet of the 2sk3065 MosFET, got it. Anyway, is there an alternative because I can't find the component even at the large retailers.

I have taken two different approaches that both worked.

This circuit filters the PWM output (standard Arduino 490Hz works fine) and uses a variable voltage regulator to drive the fan:
http://ruggedcircuits.com/html/circuit__10.html

The other approach is based on slowing down the PWM frequency (30Hz or 60Hz both are nice and quiet). I used a 4N35 optoisolator between the Arduino's PWM pin and a TIP122 transistor. The fan is driven directly by a 12V voltage regulator, with the TIP122 on the low side.

Be sure and put a heat sink on your voltage regulator if you use either of these approaches.

Jim

fandrive.jpg

I know all the symbols but I'm having trouble to understand, what part the vertical line left of the 2k3065 diodes could be (also I can't find the 2sk3065 diode here in German

The 2sk3065 is not a diode it is a FET, the diode looking thing is just part of the symbol for the FET. You can use any sort of FET here there is nothing special about it. N-channel.
Yes the two 12V lines cam be connected together, the schematic is part of a larger schematic, that is just the way it is drawn.

JimG:
The other approach is based on slowing down the PWM frequency (30Hz or 60Hz both are nice and quiet). I used a 4N35 optoisolator between the Arduino's PWM pin and a TIP122 transistor. The fan is driven directly by a 12V voltage regulator, with the TIP122 on the low side.

Hi Jim, thanks for your answer, I would like to use your second approach. Just a few questions:

  1. What limitations in terms of speed regulation are given? I'm powering this with a PC PSU, e.g. 12V is the maximum the circuit can get. (maximum voltage, minimum voltage?)
  2. There are two outputpins for the fan, what are they for? (ground and +?)

Thanks.

Hello, I found the solution I was looking for:

simple, yet everything I need. Again, thanks.

Except that some fans don't respond well to having PWM signals applies to them and it shortens their lives.
But it is simple I will grant you.

Ok, you got a point, I'm going to use a capacitor to smoothen the signal, will this suffice?

No,
if it would suffice then why would I have designed the other circuit.
The capacitor has to be too big, that is why the filtering is done in high impedance (so the C can be small and the R large) and then the FET converts the high impedance to the low impedance you need to drive the motor.

thpetrus:

  1. What limitations in terms of speed regulation are given? I'm powering this with a PC PSU, e.g. 12V is the maximum the circuit can get. (maximum voltage, minimum voltage?)

On my fan, the speed regulation is not at all linear with voltage. My fan just barely starts running at around 25% duty cycle with a 12V supply.

thpetrus:
2. There are two outputpins for the fan, what are they for? (ground and +?)

Yes, the top pin goes to fan+ and the bottom pin goes to fan-.

On my first go around with this, I used the Arduino system default 490Hz output frequency. The noise from the fan was pretty annoying. I added a small capacitor to the base of the TIP122, and that made a small improvement. But it was still very noisy.

Slowing the PWM frequency way down made the annoying noise go away. I found that both 30Hz and 60Hz frequencies resulted in smooth, quiet fan operation.

Whether or not this is damaging to the fan I cannot answer. My application is on a coffee roaster, so it only is used a few times a week for 20 minutes or less each time.

Jim