I want to control the speed of 16 DC motors in one direction.
For now I control one like the attached image, with a N-channel Logic Level MOSFET (IRF3708) connected to a PWM pin on an Arduino UNO.
The motor is a 24V DC and draws about 2A when running on full speed. It has a 1N 4002 diode across for protection.
I have looked at some different PWM Drivers to get 16 or more equal PWM pins, like:
PCA9685
TLC5940
TLC5947
TLC59711
These PWM drivers seems like they are optimized for LED's.
Which one would be the best for my purpose? Or do you suggest a different approach all together?
The PCA9685 seems to me like it would work directly with N-channel MOSFETs, but the modules I find have 220 Ohm resistors on the outputs. Would that be a problem?
The TLC59xx looks like they need a HEX inverter to work with N-channel MOSFETs, but other than that they look like they would work.
What are the pros and cons of these drivers or would you suggest others?
An Adafruit PCA9685 breakout board (clones on ebay) and 16 logic level mosfets should be able to do what you want. The 220ohm series resistor is not a problem.
A small issue could be PWM whining noise from the motors, since the upper PWM range of the PCA9685 is 1kHz.
You could try other frequencies than the default 200Hz.
The PCA uses FastMode+ I2C. Several meters of cat-6 should not be a problem.
I use 6-7meters between a Mega and two PCA boards, running problem-free 24/7.
Leo..
I use this library, but mainly for IEC corrected LED lighting. Driving PT4115 LED drivers (sink only).
There are also commands in that library to set the 12-bit PWM directly (never used that).
I think you can set PWM directly with most PCA9685 libraries.
The PCA is AFAIK in totempole output by default.
Not sure if you have to change that for n-channel mosfets.
Just try with one channel.
Leo..
Wawa:
The PCA is AFAIK in totempole output by default.
Yes, found it:
"Sixteen totem pole outputs (sink 25 mA and source 10 mA at 5 V) with software programmable open-drain LED outputs selection (default at totem pole). No input function."