I'm kind of new on the field of Arduino. Although I have a question concerning multiple fan connection on 1 arduino PWM pin. The goal is to connect around 8 to 16 fans on 1 arduino pwm header pin and control their speeds separately using a potentiometer. As I seen it can be achieved by using transistors. The question is are there any limitations on how many fans can I connect and control seperatly using tranzistors? Can I for example use 16 transistors and control 16 fans seperatly ?

Thank you for your answers in advance

  • 1
    Need more information about can be achieved by using transistors. Furthermore, I don't think PWM multiplexing is a good idea. See the answers on this arduino.stackexchange.com/questions/31099/…
    – duck
    Feb 23, 2018 at 1:36
  • You want 16 fans on one PWM pin, is that it? What is the purpose of the PWM pin?
    – Nick Gammon
    Feb 23, 2018 at 2:31
  • The idea is that the goal is to connect arround 6 to 16 fans (depending on the situation I don't know how many at the moment) and I want to control them seperatly using potenciometer. The idea is that they should be controled seperatly as in for example FAN1 - 100% (Max RPM) FAN2 - 70% And so on.. Do you understand the goal now? What would be the best solution for this situation? I will also connect a 128x64 screen and 4 buttons for meniu navigation
    – dmxyler
    Feb 23, 2018 at 10:27

2 Answers 2


One PWM pin can control only one fan (or one group of fans). You can't have one PWM pin outputting different values to different fans, since one pin can only have one value. (Yes, there are ways of multiplexing it through time slicing but that is both hard and not a good idea).

You need one PWM per fan if you want individual control of each fan's speed. That means a maximum of 6 fans on an Arduino.

To get more you would either have to use software PWM (which can introduce jitter which may not be a problem with simple fans), or an external PWM controller. Or add more Arduinos.

If all you want is potentiometer control of the fans you can do it without using an Arduino. A pair of op-amps (it can be a single dual op-amp chip), one acting as a triangle wave oscillator, and the other as a comparator, will generate PWM for you. Here's an example:

enter image description here

Image by ElectroBOOM (watch his videos sometime, they're hilarious)

  • Can I merge multiple arduino unos together? for example hook up a screen on one arduino uno, and buttons, and use 2 - 3 arduinos to control fans, but display the info on the first arduino? Is it possible to use arduinos as extenders? If so how?
    – dmxyler
    Feb 26, 2018 at 5:40
  • @dmxyler Sure. You just need to get them to communicate with each other. I2C and Serial are common ways - there's plenty of online resources.
    – Majenko
    Feb 26, 2018 at 9:17
  • ok thank you for your advice. WIll try. Have a great day :)
    – dmxyler
    Feb 26, 2018 at 12:59

One option for controlling multiple PWM output is to use a I2C PWM Driver (e.g. PCA9685). It has 16 PWM outputs and is controlled from the arduino with I2C which only requires 2 pins on the arduino.

Tutorial: https://learn.adafruit.com/16-channel-pwm-servo-driver

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.