LED brightness correction

Has anyone used a variable scale factor to even-out LED brightness if controlling by voltage only? I am not using current control which is more linear to brightness. Brightness is an exponential-like function of voltage. I am trying to make a good function to make brightness a linear function of voltage PWM %. Something hyperbolic... Thanks

You're not controlling voltage, you're controlling duty cycle.

Yes. Ok, what I did was I made a table of current vs. voltage from the LED datasheet and then mapped the desired current/brightness to the output voltage required. Tweaked it some and it works well, now brightness is more linear to the requested amount.

You may see from the datasheet, the relation between forward voltage and current is exponential. As the higher brightness levels, a very small increase in voltage produces a large increase in current. That is why for some LED applications, a constant current driver circuit is the preferred method to avoid exceeding the LED's maximum design current. For some applications constant voltage driver is the simplest and least costly method.

The Arduino's PWM pins make it possible to easily vary an LED's brightness by controlling the PWM duty cycle.

You might want to look at gamma correction techniques.

Take a look at: Adafruit Gamma Correction

also found here: LED Tricks: Gamma Correction

perigalacticon:
Has anyone used a variable scale factor to even-out LED brightness if controlling by voltage only?

I am not using current control which is more linear to brightness.

Brightness is an exponential-like function of voltage.

I am trying to make a good function to make brightness a linear function of voltage PWM %. Something hyperbolic... Thanks

  1. Probably not, because it's a dumb thing to do.

  2. Brightness is a result of LED power.
    With voltage control, the LED uses more current (and more power) when it gets hotter.
    So brightness in NOT constant with voltage control.
    A LED has a negative temp coefficient. Hotter is more current, is hotter, is more current. Thermal runaway.
    LED power doesn't have a linear relationship with brightness.
    Half power is not half perceived brightness.

  3. Sort off. If you dunk your LED in oil to keep the temp of the LED die constant.

  4. Forget about it. Use constant current, like everybode else does.

perigalacticon:
Yes. Ok, what I did was I made a table of current vs. voltage from the LED datasheet and then mapped the desired current/brightness to the output voltage required. Tweaked it some and it works well, now brightness is more linear to the requested amount.

How do you control/make that "voltage".
Your previous posts mentions a 12volt supply and a mosfet.
An Arduino has PWM outputs. The mosfet is being switched fully "ON" for a certain amout of TIME.
How much LED current flows during that "ON" time.
You might be fooled by seeing a varying voltage on your DMM.
Leo..