8 Channel PWM Controller

I would like to set 3 PWM frequencies i.e 1, 2 & 3 Khz.
I would like to drive a load of max 2.5A using MOSFETS, ideally in small steps of say 50mA by varying the duty cycle 0-100%.

There will be 8 independent channels of the above.

Is there an elegant way of achieving the above? My thoughts were to have 8 rotory switches for selecting the 1, 2 & 3 Khz frequency and 8 rotory potentiometers to vary the duty cycle. 8 displays would be used to monitor the current draw via a current shunt. I was thinking of using an Arduino Mega due to the number of I/O pins available.

Any ideas would be appreciated! Thanks

Maybe like PCA9685 but those support frequency from a typical of 24 Hz to 1526 Hz.

At such low frequencies, that would be fairly easy to implement as ‘software’ PWM.

  • worst case, you’d dedicate a $3 processor to handle the PWM activity with an API from the controlling application.

Do you want to control the current value, or do you assume a known dependency between duty cycle and current?

Ideally I would like to control the current but my programming knowledge is limited so I was thinking of simply controlling the duty cycle and relying on this change to increase/decrease the current. I just wanted to know if using the Arduino Mega would be a suitable route to take to output 8 PWM signals simultaneously? Or if there was perhaps a better solution. Thanks.

A Mega certainly can be used in a feasibility study. It includes a couple of timers with 3 PWM outputs each. In such a study you may learn more about further requirements.