Hello Community
Bipolar voltage level indicator
Consider 3 to 5 levels with LED.
Tried zener diodes, but higher voltage produces too much current for lower ones.
If resistance is increased, lower voltage level LED appears dim.
Any suggestions?
Have you considered that the problem isn't the thresholds but the drive? Two separate fixes:
Quick fix for your existing zener circuit: keep the zeners as threshold elements but stop letting them set the LED current. Zener → small NPN as a switch, and put a constant-current source in the LED leg instead of a resistor — a CRD (J503, ~5 mA) or a two-transistor current limiter. Brightness then stays flat across the whole input range and the lower LEDs don't overheat.
Better fix: drop the zeners. Below ~6 V their knee is soft (hundreds of mV), tempco is up to ±0.1 %/°C, and batch spread is ±5 %, so your thresholds are vague and drift. Two cleaner options:
TL431 per level with a divider. Threshold = 2.495 V × (1 + R1/R2), ±0.5 %, ~30 ppm/°C. Channels are independent, errors don't stack. Needs ≥1 mA cathode current and ≥2.5 V across the cathode.
LM339 quad comparator + one 2.5 V reference (TL431 or LM4040). Input through a resistor ladder to the non-inverting inputs, reference to all inverting inputs. Open-collector outputs sink the LEDs directly. Add 100 k–1 M from output back to the non-inverting input for hysteresis, otherwise the LED will chatter at the threshold.
For the bipolar part: run the comparators on a split supply and mirror the chain with a −2.5 V reference for the negative half. Or, if you don't need both polarities lit at once, use a precision absolute-value stage on one op-amp, one LED chain, and a bicolour LED driven from a comparator against ground for the sign.
If you'd rather not build a discrete ladder, an LM3914 does all of this in one chip — 10 levels, dot or bar mode, and a built-in current source so brightness is constant by design. Add the abs-value front end for bipolar input.