I successfully changed apparent LED brightness just using a linear on/off duty cycle change in a loop. I believe your eye isn't registering "actual brightness" but "average brightness" (a function of time) instead, so I don't believe it's logarithmic. I would guess that the actual brightness of the LED is the same regardless of duty cycle, but the eye is doing the averaging (this could be confirmed with a scope and a phototransistor).
Actually I'm really curious about this now.
picster
Bookmarks