Announcements

## Arduino - PWM MOSFET

Level 1
Level 1

I have a bit of a problem that in hoping someone can shed some light on.

I have a 4 wire fan (from a power mac g5) and I found that the pinout is positive, negative, PWM and rpm output. It's a bit strange in that the 12v must be connected constantly and the fan speed is actually controlled with either a variable voltage to the PWM pin or I'm guessing an actual PWM of 12v would be more likely. I have tested this with 12, 5 and 3v to the PWM input and it works.

So what I am trying to do is control 4 of these fans with an arduino uno.

If I take a 12v wall wart and power the 12v rail on the fan, then use a mosfet to produce the 12v PWM signal using the arduino to drive the PWM input on the fan, is this the way to go? Can anyone show me an example of how to do this using 1 12v PSU?

My knowledge of transistors/mosfets is nil!

Thanks,

1 Solution

## Re: Arduino - PWM MOSFET

Moderator
Moderator

Hi,

Thank you for posting on the Infineon Community.

I did some digging on the Mac g5 fan and found some info regarding the 4 pins,

1) PIN 1 - Variable voltage power supply (speed control input). This input varies from 3.9v RMS (5v Peak) at minimum speed to a smooth 12VDC at full speed.
2) PIN 2 - Speedo. This is an output from the fan back to the controller to feedback the fan speed. It is a 50% duty cycle 4.0v square wave which varies from 28Hz at minimum speed to 111Hz at full speed
3) PIN 3 - Ground (negative)
4) PIN 4 - 12V (for fan logic) This appears to be a supply for the fan's speed feedback circuit and any other digital/control circuits on the fan. I believe they have this separate 12V rail because at the minimum speed the Variable voltage rail dips to about 1.2v.

"I have tested this with 12, 5 and 3v to the PWM input and it works."
Yes, this observation is as expected. When you vary the PWM output from 3V to 12V, by keeping the 12V supply constant, the speed of the fan can we varied. This can be one of the ways of controlling the speed of the fan. But most of the fans doesnt work this way. Please refer to the following section for better understanding.

Speed controller can be achieved in 2 ways,

1) One of the method to achieve the speed control here is to have a circuit similar to the one which you have explained.

Let me just explain it step by step,

a) Constant 12V supply to supply pin.

b) PWM output from Arduino to the gate driver to the MOSFET which in-turn is given as the input to the PWM pin of the fan. The MOSFET is powered on from the same 12V supply. It is switched accordingly based on the code that is written in Arduino. If you are using a logic level MOSFET, then gate driver is not required.

2) You can use a motor control chip off the shelf for carrying out this application. The relevant block diagram is as shown below,

Here we are not using the feedback/Sense pin which tells the computer how fast the fan motor is actually spinning.

I hope the above explanation has helped you understand how to achieve speed control of the Mac g5 fan.

Regards,
Abhilash P

## Re: Arduino - PWM MOSFET

Moderator
Moderator

Hi,

Thank you for posting on the Infineon Community.

I did some digging on the Mac g5 fan and found some info regarding the 4 pins,

1) PIN 1 - Variable voltage power supply (speed control input). This input varies from 3.9v RMS (5v Peak) at minimum speed to a smooth 12VDC at full speed.
2) PIN 2 - Speedo. This is an output from the fan back to the controller to feedback the fan speed. It is a 50% duty cycle 4.0v square wave which varies from 28Hz at minimum speed to 111Hz at full speed
3) PIN 3 - Ground (negative)
4) PIN 4 - 12V (for fan logic) This appears to be a supply for the fan's speed feedback circuit and any other digital/control circuits on the fan. I believe they have this separate 12V rail because at the minimum speed the Variable voltage rail dips to about 1.2v.

"I have tested this with 12, 5 and 3v to the PWM input and it works."
Yes, this observation is as expected. When you vary the PWM output from 3V to 12V, by keeping the 12V supply constant, the speed of the fan can we varied. This can be one of the ways of controlling the speed of the fan. But most of the fans doesnt work this way. Please refer to the following section for better understanding.

Speed controller can be achieved in 2 ways,

1) One of the method to achieve the speed control here is to have a circuit similar to the one which you have explained.

Let me just explain it step by step,

a) Constant 12V supply to supply pin.

b) PWM output from Arduino to the gate driver to the MOSFET which in-turn is given as the input to the PWM pin of the fan. The MOSFET is powered on from the same 12V supply. It is switched accordingly based on the code that is written in Arduino. If you are using a logic level MOSFET, then gate driver is not required.

2) You can use a motor control chip off the shelf for carrying out this application. The relevant block diagram is as shown below,

Here we are not using the feedback/Sense pin which tells the computer how fast the fan motor is actually spinning.

I hope the above explanation has helped you understand how to achieve speed control of the Mac g5 fan.