Go Down

Topic: Increasing Brightness Linearly (Read 876 times) previous topic - next topic


I understand that LED brightness seems to be logarithmic as a function of duty cycle. In other words, perceived brightness = log(duty cycle) or that as the duty cycle becomes higher, the perceived differences in brightness become more imperceptible.

A person on the AVR Freaks forum posted this thread on how to use the formula "brightness = log(10^(duty cycle)) = x" to cancel out the log using a lookup table or linear interpolation.

Is there a name for this kind of "linearizing using the inverse"? I searched wikipedia and found "Inverse problem" but it got complicated really quickly with matrices and I couldn't follow.


what is the colour of the LED as IIRC these formulas depend on the colour too.

If you want to implement a lookup table check multimap() - http://playground.arduino.cc/Main/MultiMap -
Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)


My particular LEDs were green and white.


The logarithmic curve is only a relatively coarse approximation. More accurate is the CIE LAB correction:


This post on the forum explains how to calculate a lookup table:

You may want to check out "progmem":


Go Up