Human vision is better at noticing a small change in brightness for darker objects than lighter objects. This is a good thing, but it makes it harder to create a brightness controller.
A naive circuit for brightness control will use most of its range for bright values and very little for darker values. So it is very hard to set a dim value.
Most models of human vision uses gamma-correction to fix this, but it is hard to do using an analog electric circuit. Instead an exponential correction can provide a similar result.
I put together an LED control circuit to test this:

The circuit built on a breadboard:

I tried several resistors and potentiometers to the input range for the exponential amplifier.
The LMV358 operational amplifier minimum output level is typically 120mV. This prevents it from generating a 0V control signal and to turn the LED fully off.
Voltage ranges:
| Location | Range | Inverted |
|---|---|---|
| Potentiometer | 2.78 - 2.98 V | |
| Exponential amplifier | 2.47 - 0.20 V | Yes |
| Inverting amplifier | 0.10 - 2.28 V | |
| Current control input | 0.04 - 0.91 V |
© 2026 Mats Mattsson