Making a fan controller for PC

Hi guys,

I have a TIP41C and TIP42C transistor at hand, I'm not sure which one I should use for my project though.

I wish to control several 12V PC fans based on the potentiometer feedback (0-1023). The circuit should adjust the voltage going to the fans based on how much potentiometer is turned.

Can you help me in connecting my Arduino Uno, transistor and potentiometer together?

I expect the fans will work better if you control the on/off time of the 12V driving them vs trying to drive them with a lower voltage.
To do that, control a transistor with a PWM signal.
With a 12V supply, the easiest way to do that is to use an NPN to connect the '-' of the motor to Gnd.
The TIP41C and TIP42C are not very high gain parts. To get them to turn on fully and have minimal voltage across them you need a lot of base current -
see "Collector-emitter saturation voltage" on page 4

Arduino can only output 20-30mA, so these transistors won't turn on very hard and not much current will flow unless you put a drive circuit in front of them to boost current flow into the base. And even then, you will lose up to 1.5V across the transistor, leaving just 10.5V across the fan for poor operation.

I'd recommend an N-channel MOSFET instead, such as AOI508.
It switches based on gate voltage instead of base current.
Arduino can drive the gate directly, AOI508 has very low on-resistance so very little power is wasted in the transistor, and it will run cool. With just .0045 ohm on-resistance, just 0.027V will be developed across the transistor at say 6A of current flow, so nearly the full 12V is available to spin the fan.

1 Like

Diode & transistor choice will depend on the motor/relay/solenoid/etc. in use.