PC fan controller

Hello to everyone,

I'm pretty sure this question was answered a lot during the years but I don't know if what I want can be achieved so I'm asking, I'm sorry if it was answered before, you can direct me to the other post or another reference and I'll try and understand it.

So to the point:
I'm thinking about arduino PC fan controller that will be able to take temp sensor data from multiple points inside the case and adjust 7 or even 8 fans.

I read that with an Arduino UNO I can work with 5 or 6 pwm fans but I think I'll need more than that (don't ask me why... :slight_smile: )
So I saw this: Adafruit 16-Channel 12-bit PWM/Servo Shield - I2C interface
and I was wondering if this can solve my problem with the amount of fans I'll be running.
also just to make sure it's all going to be able to work together, is there an easy way to work with more than 1 temp sensor and which is the best in your opinion.

Again sorry if it was asked before I'm noob as it can be on this but I just want to understand if it's even possible. I'll figure the how later (although guidelines will be appreciated :slight_smile: )

Thanks in advance!

Since the shield Claims to have 16 channels, it should handle up to 16 fans so 7 or 8 wouldn't be a Problem.
There are at least three types of temperature sensors. Using one that works with an analog pin, you would be limited to A0, A1, A2, and A3 (since presumable A4 and A5 are being used for I2C). Some Arduinos also have A6 and A7.
If you use "one-wire" type sensors (DS18B20 for example), you could run lots because they are individually addressable.
If you run I2C sensors, which isn't a Problem because presumably they will have a different address than your shield, you are only limited by how many addresses the sensors can assume. For example the Adafruit MCP9808 breakout, which is a high precision temperature sensor, has three configurable address Pins so up to 8 can be used in a Project.

Thank you for all the pointers and the information!
Now that I know it's even possible I'll start getting what I need for this project.

Thanks again.

That shield should be able to drive sixteen 4-pin fans directly.
3-pin fans will need extra parts.
DS18B20 temp sensors would be a good choice.
Leo..

Wawa:
That shield should be able to drive sixteen 4-pin fans directly.
3-pin fans will need extra parts.

I'll need an explanation....
on the shield the PWM bus shows 3 pin so why would I need more part for the 3 pin fans and no parts for the 4 pin fans? can you please explain that one leo?
Thanks in advance.

That shield is designed for servos.
The three servo pins are power and ground (from the screw terminal), and PWM from the chip.

PWM is signal only (like an Arduino pin) and can't switch the current of a fan.

A 3-pin fan has three wires. Power (12volt), ground, and a tach output. No speed control pin.
A mosfet (with surrounding parts) is needed in series with one of the the power wires of a 3-pin fan.

4-pin fans already have inbuild speed control.
Just connect the fourth speed control wire to the shield's PWM output.

Using 3-pin fans and logic level mosfets shouldn't be a problem, since there is a proto area on the shield.
Could get messy though.
Leo..

Ok Good to know! thank you! :slight_smile:

Another question that just popped to my head...

If the fan runs on 12volts and the board/shield runs on 6volts (through the 5volt pin or external source) the max you can put on it is something like 9 volts as a source.

will it run the fans at full capacity if I need to?
is there a way to provide the shield with 12volts external power source? capacitor or anything else?

I'm just starting to get the hang of all these electronic language so I'm still pretty new.

Thanks in advance for all the help.

Shield power and fan power are independent and have nothing to do with each other.

The shield just provides a PWM control signal for the fans.
It needs 5volt from the Arduino, and draws very litle current.

The power to spin the fans has to come from a capable 12volt supply.

If control/PWM signal is set to max, the fans will spin at max RPM.

Try with an old 4-pin fan and a PWM signal from the Arduino first, before you expand to that many fans.
Most CPU fans are 4-pin.
Leo..

so basically I only need the pwm pin to go into the shield and the power to go through the power supply of my PC? so I need to remove the pwm wire from the connector of the fan and attach it to the shield.
did I get this right?

and thank you for the help.

Basically, yes.
And share grounds.

Post a hand-drawn diagram, so we can check if you understand it.
Leo..

ok sorry for all the trouble.
I have 4 wire connector:
black = GND
yellow = +12V
red = Tach (or the rpm wire.... still don't understand this one)
blue = PWM wire.

I need to take the blue wire to the PWM shield and connect it to the PWN pins.
I didn't understand your "share grounds" comment... does it mean to take the black and red wires together? or the yellow and red together? or did I lost you completely.

I'm not good with drawing circuits yet but I understand the concept. again sorry about this and thanks a lot!!! :slight_smile:

Are you sure about the wire colours. Red is usually +12volt.
A small 4-pin PC fan plug has this order: | Ground | +12volt | Tach | RPM |
Ground is black. +12volt is usually red. Tach could be yellow. RPM could be blue.

Share grounds means that ground of the 12volt supply also has to be connected to Arduino ground.
Leo..

yes ok the color were just to represent. I'll get the specification of my fan and see the wiring.

but now I got the share grounds bit.

Thanks A lot!!!! :slight_smile:

Hi Sagirotach,

Has it worked out ? i would like to build such a fan controller and would also like to use the adafruit shield, but productpage says max 1.6kHZ and i was told on another site to use 25kHz..

To be homest it's in the backlog.... for me for now..... so I haven't.
sorry.