How to control high power leds (500mA) via pmw accurately?


I would like to control 8 high power leds (500mA) via pmw outputs using the arduino uno but I need less ripple than the default Uno wms’s.
What would be the best way to controll them?

I want to connect the pwm to a led driver, the MDL24

I found this breakout board:

they mentioned that pmw is 10Mhz

I guess RC filtering is an option but would prefer a faster, more direct (high freq. PWM)
Need at least 1MHz pwm
-Are there good (multi channel) analog output boards? (ripple < 0.1%)
-is there a betteralterantive than the TLC59711?

Input apreciated,

Hi, welcome to the forum.

The Arduino uses 500Hz for pwm output. That should be good for leds.

What do you mean with "ripple" ? You mean small timing differences in the pwm signal ? But that is impossible to see for a led.

The Adafruit board is a nice board ofcourse: But it does not have 10MHz pwm, it could be 44kHz or 625kHz, I don't understand the datasheet very well.

I can't find the maximum frequency for the pwm signal to the MDL24, but I assume it is a few kHz.

Why do you want to control leds with such a high frequency pwm ? What is your problem with jitter when you can not see it ? Did you perhaps connect such a led to the Arduino with usb power and the light was not stable ?

Hi Caltoa/others,

The led is not for human eyes but high speed camera with expose times < 50us
To have changes <0.1% I need at least 1000x that speed
With 1Mhz, pwm changes every 1us so with exposure time of 50us I get 50 pwm changes means changes of light of 1/50 = 2% I need it 10x faster so 10Mhz

I agree adafruit specs are fuzzy.

I used a 24V lab power supply (not usb) (on the motien)

With ripple I mean change in power (either volt/amp) so the AC component on a DC signal.
The pwm trough the motien gives the same change (ripple) on the Leds. I need it to be either vast enough so I won’t see it anymore (at high speed) and I need it to be stable after change (lets say within 50ms from 0 to 500mA) so no slow RC filtering.

I haven’t looked at the ingoing pwm side of the motien, but I assumed there is no max. it simply ‘relays’ the signal using an exteranal power (in my case the 24V lab power)

Let me know if you know any hardware out there that can do the trick.
Or accurate multichannel dac boards
Other options?

For those interested: by the way some pins of the the Uno pwm can be set to 62,5KHz (but still not good enough for my application).

I need it 10x faster so 10Mhz

That is not going to happen.

What is a "motion"?

I think your understanding of ripple and it's effects are a bit flawed.

Looks like it is not a job for an arduino. Switching half an amp at 10MHz is no beginners project either.

I agree with Grumpy_Mike: That is not going to happen. Suppose 10MHz pwm with 8-bit pwm, 256 possible pwm values. So the base clock for the pwm should be 2.56GHz. That is something for a laboratory test. I also don't know what that led will do with 10MHz. So lets drop the pwm.

Can you use an analog controller for the leds ? How fast do those leds need to change the brightness or turn on and off ? If that can be slow, you can use a switching current driver with a filter. If that needs to be extremely fast, you can only use a full analog controller with heatsinks.

As the LEDs are power LEDs then you have to use constant current control anyway. You will struggle to get constant current PWM to go that fast. Best just to stick to a constant current supply whose current is defined by a voltage.


Yes a dac (analog signal) could work (pref. 0-5V)
I don’t need to swap the fast, once every few seconds. But would be nice to have a ‘fast’ settle time (<100ms)
Does anybody know a good DAC board? (prefebly 8 channels, or 2x 4 channels, etc)

Mike, see mdl24 link I first post for the led driver I want to use.

Does anybody know a good DAC board?

Have a look here:-

Looking at the data sheet you will see that you only need a maximum of 1.3V for the full output. Therefore look for an D/A that can operate with a reduced reference voltage so you maximize your control accuracy for any given number of bits of D/A.

a more convenient solution

What's the purpose of using PWM, which effect do you want to achieve?

As long as you don't have an ultra high speed camera with 10M exposures per second, a much lower frequency is sufficient. If you only want to control the brightness of the exposures, limit the lighting time or current for every single exposure.

I've read of a technique with constant-current power supplies. (The power supply may be PWM controlled but the current through the LED is usually DC.)

The LED is simply "shorted out" to turn it off (with a MOSFET, etc.) and the constant-current power supply just happily continues to send the current through the short. But, you'd have to control the timing and I can't predict if the power supply would have a short-duration glitch when the voltage suddenly changes.

...The application I was reading about was just a visual "blinking" application with a power supply that wasn't designed to do that.