I'm looking into the various options for driving 100-150 PC fans. The fans would be ordered similar to an LED matrix and programmed with patterns as such.
With limited number of pins on an Arduino using something like an Max7219 IC in connection with several 16 channel transistor boards seems like a good option. The fans draw 0.22A @ 12vdc.
My understanding is that the LEDs in a matrix are not continually ON - instead turning ON column by column - but appear to be ON to the eye. If the same IC were to be used through with transistor I'd imagine it would work as well - even if not continually ON. If OFF momentarily it would also serve as a form of PWM.
Thoughts?
Would this work?
Alternative suggestions on running 100+ PC fan motors in pattern?
It might be made to work as you describe. And yes it would pwm the fans. But understand that, if running 64 fans with a max7219 + transistors, the maximum pwm would be 12.5%. Can you try the fans at that level? Would it be enough for whatever mysterious purpose you have in mind?
Alternatively, how about several (6~10) "Adafruit 16-Channel 12-bit PWM/Servo Driver - I2C interface - PCA9685"? You may need transistors for each channel, unless the pc fans are the type with a built-in pwm driver. I think the 4-wire type of fans are like this.
Thanks for the direction in this. Yes the "Adafruit 16-Channel 12-bit PWM/Servo Driver - I2C interface - PCA9685" might be a perfect solution to this as 12.5% peek PWM wouldn't make much use of the motors.
What would simplify things more is a NO / NO transistor toggle. There are two fans per unit. One blowing in ( when HIGH ) and the other blowing out ( when LOW ).
I can do this through programming turning FAN A on, FAN B off to inflate, then FAN B off, FAN A on to deflate.
What would be easier ( I think? ) would be two circuit boards... a NPN and a PNP. Then one pin/signal could control both. If HIGH one fan is on the other is off - if LOW the opposite.
Could also use a DPDT relay but they tend to be rather noisy with all the clicking.
Can find 16 channel NPN boards but not PNP?
Any suggested on when a 16 channel PNP board can be found or alternatives to running these fans?
How about tpic6a595? These could drive 8 fans without extra transistors. Each of the chip's outputs can sink up to 350mA at up to 50V. You would need 16~20 chips, but you would not also need any driver transistors, so the circuit would be much simpler. If you daisy-chain them and use the Arduino's SPI pins, you could use the shiftPWM library if you need to control the can speeds.
But if your fans are the 4-pin variety, you can just use the far cheaper 74ls595.