PWM Driver for DC motor

Hi

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?

I2C compared to SPI?

Wire/cable length Arduino -> PWM Driver?

Grateful for any tip and direction on this.

Cheers, Hal

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..

Great, thanks Leo :slight_smile:

Which Library do you suggest?

or

Also, in the the data sheet on page 29 it says about using external N-channel drivers to set:

INVRT = 0
OUTDRV = 1

Where would I do this?

Fig 13. External N-type driver

Hal

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."

Thanks