Controlling fan speed via PWM

Hi,
I want to be able to control a fan like this using PWM

It's a 12V DC fan with 2 lead wires. Aside from the Arduino, what other components do I need? I think the Arduino itself has PWM functionality. I have the Uno and the Nano.

I've been reading about controlling DC fan speed via PWM, and it seems there are dedicated "PWM fans" that has a dedicated wire for PWM signal.

So what's the difference between "PWM fans" and regular DC fans like the one I showed?
Thanks

A 2-wire brushless fan is just the fan.
3-pin (computer) fans have a third tach wire for reading RPM and/or stall detection.
Both need external parts (mosfet) if you want speed control.
4-pin fans are the same as 3-pin fans, but have the electronics for speed control built-in.
Leo..

Starting with your fan specifications:
7.0 to 13.8 Volts Nominal 12.0 VDC
Max is .37 Amp for current.

The Arduino Uno is a 5.0 volt device with a max current out of realistically 20 mA per pin. So with that in mind your Arduino will not be able to drive your fan. This is where you want something to drive your fan like possibly a MOSFET. You want a logic level MOSFET or similar and you can use low side switching.

Primarily that a fan designed for a PWM input signal includes the fan driver MOSFET or similar and with your basic two wire fan you need to add the external driver. Well I see as I crawl along that Wawa already covered that. :slight_smile:

What did you want to use as hardware for an Arduino input to derive your PWM out?

Ron

you can control the fan speed with PWM fans,
while the regular DC fan, like the one you showed, is just ON/OFF

Rubbish.....

https://www.youtube.com/watch?v=UJK2JF8wOu8

why is it rubbish?
in the video you linked, he literally just turned the 2pin fan ON/OFF based on the temperature

OK less the term rubbish a two wire fan is easily controlled using PWM. Just as an example most home computer fans are three wire fans. The third wire is a tachometer out signal to derive fan speed measurement. You can turn a simple two wire fan On/Off using temperature or for that matter add a PWM out based on for example temperature or an analog in signal. This is all pretty basic stuff.

So no, as to on / Off only that is not true. You can very easily PWM a two wire fan for fan speed control. If you would like a code sample and schematic both can easily be posted.

Ron

The 'regular dc fan' has a built-in controller. So, while it can be varied to some degree it cannot be done well. It's like varying a brushless motor's speed by PWM'ing its ESC's supply voltage.

yes i agree that you can easily PWM a 2 wire fan ('regular DC fan' according to op) to control its speed. But what it actually does is turn the fan ON/OFF at high speeds (frequency), and the fan speed control is based on the duty cycle
higher duty cycle = longer ON times = higher fan speed
lower duty cycle = longer OFF times = lower fan speed

this is much easier with a PWM fan (4wires) as the circuit is already there, you just need power and the pwm signal.

op was asking for the difference between the fans, and that is the most basic answer imo.

You will need a driver (a transistor or a mosfet) that support the fan current. Can not drive the fan thru directly from Arduino pin.

If you turn the fan on/off at a lower rate, then it's less of a problem.
Old PCs with 2-pin and 3-pin fan controllers are usually used 30Hz PWM.

4-pin fans should be controlled with 25kHz PWM, which is an Intel CPU fan standard.
Most 4-pin fans do work ok on the default 500Hz or 1kHz Arduino PWM frequency.

But you could be hearing a whine if you PWM a fan in your hearing range.
Same goes for 30Hz PWM, which could produce a knocking noise.
Leo..

Can this speed controller be used with the fan I mentioned?

Or do I have to use a MOSFET?

You can control your fan like this

Yes and any of a dozen similar modules. I suggest you read the link by johnherrington. A simple Google of fan speed controller will bring up a dozen of the things. What exactly are you wanting to do and how? The "how" means what do you want to control fan speed based on?

Ron

For now, just want to be able to turn a dial to control air flow by feel.
Later, I might want to be able to control by air flow. Not sure if there's a way to measure air flow directly. But it'd be nice to have a readout of the air flow. I guess if there's a way to measure air velocity than I can get the flow rate by multiplying by a cross sectional area...

Thanks. I read it, but was only able to understand a portion of it. I really need to review my knowledge of Darlington transistors and MOSFET.

But since mentioned inductance of motors causing arcing, does this mean if I hook up a battery directly to the 2 wire DC motor via a simple switch, each time I open the switch, the inductance will cause a back emf which would cause arcing?

In your diagram you seem to have capacitors and resistors in parallel to dissipate this energy. But wouldn't this cause a significant efficiency loss if the switching is done at a high frequency, such as by PWM? What is the efficiency of PWM controlled DC fan as opposed to a fan driven at a constant voltage?
Thanks

BTW, in the part list for the project I'm trying to build, there is a voltage protection module:

Can someone explain what that is for?

For your 3. PWM circuit, can you recommend a MOSFET and diode that'll work with the fan I listed? I have not purchased discrete diode and MOSFET before and I want to be sure it's spec ed right.

Thanks

In the link

The IRLZ44NPBF will take 40A and 55V - price 0.77p Mouser. R1=330 ohms, R2=10k

Sparkfun (and other suppliers) offer the FQP30N06L (60V 30A TO220 package) at around £0.80