Objective and use case
What you’ll build: In this project, you will learn how to eliminate flicker in LEDs by using a capacitor to smooth supply ripple. This is an essential skill for ensuring stable LED performance in various applications.
Why it matters / Use cases
- Enhancing the visual quality of LED displays in consumer electronics, preventing distracting flicker during operation.
- Improving the reliability of LED indicators in automotive applications, ensuring consistent illumination under varying power conditions.
- Facilitating smoother operation of LED lighting in smart home systems, where fluctuations in power supply can cause noticeable flicker.
- Reducing eye strain in environments where LEDs are used for prolonged periods, such as in office lighting or entertainment systems.
Expected outcome
- Reduction in visible flicker measured at less than 1% modulation depth on the oscilloscope.
- Stable LED current (I_LED) maintained at approximately 20 mA with minimal ripple.
- Voltage at the +V rail (V_SUP) stabilized within ±0.1 V during operation.
- Improved power supply ripple measured at less than 50 mV peak-to-peak.
Audience: Beginners in electronics; Level: Basic
Architecture/flow: The circuit consists of a power supply connected to a resistor and LED, with a capacitor smoothing the voltage to eliminate flicker.
Materials
- 1× LED (5 mm, any color; red assumed ≈2.0 V forward drop)
- 1× Resistor 330 Ω, 1/4 W (LED current limiter)
- 1× Electrolytic capacitor 470 µF, ≥10 V (main filter, C1)
- 1× Ceramic capacitor 100 nF, ≥10 V (optional high‑frequency bypass, parallel to C1)
- 1× Breadboard and jumper wires
- 1× Signal generator (sine, 1 Vpp, 100 Hz, +5 V DC offset) or a 5 V supply with noticeable ripple
- 1× Oscilloscope (2 channels recommended)
- 1× Digital multimeter (DMM)
Wiring guide
- Build the LED branch:
- From +V rail to R1 (330 Ω), then from R1 to LED1 anode, then LED1 cathode to GND.
- Add the capacitor:
- C1 (470 µF) from +V rail to GND, observing polarity: “+” to +V, “−” to GND.
- Optional: place 100 nF ceramic in parallel with C1 (also from +V to GND).
- Connect the ripple source:
- Signal generator output (Vin) to the +V rail; generator ground to GND.
- Configure generator: sine, 100 Hz, 1 Vpp, +5 V DC offset.
- Define measurement abbreviations you will use:
- V_SUP: voltage at the +V rail relative to GND (ripple you are smoothing).
- V_A: voltage at the node between R1 and LED1 (LED anode) relative to GND.
- V_R: voltage drop across R1; compute as V_R = V_SUP − V_A.
- I_LED: LED current; compute as I_LED = V_R / 330 Ω.
- Oscilloscope probing:
- Ch1 probe tip to V_SUP dot; Ch1 ground clip to GND.
- Ch2 probe tip to V_A dot; Ch2 ground clip to GND.
- DMM:
- Measure DC voltages as needed; to get I_LED, measure V_R and divide by 330 Ω.
Schematic
+5 V
│
● VCC
│
│ ┌┴┐
│─────────────────│ │ R1 = 330 Ω (limitador)
│ │ │
│ └┬┘
│ │
┌┴┐ ● I_LED
│ │ C1 = 220 µF │
│ │ (electrolítico)┌┴┐
└┬┘ │ │ LED1 rojo
│ │ │
┌┴┐ └┬┘
│ │ C2 = 100 nF │───● V_LED
│ │ (cerámico) │
└┬┘ │
│ │
└───────────────────┴────────────────
GND
Measurements and tests
-
Baseline (without C1):
- Remove C1 (and 100 nF if installed).
- Observe V_SUP ripple with Ch1; note its peak‑to‑peak value (ΔV_SUP,pp ≈ 1 Vpp).
- Observe V_A with Ch2; you should see a similar 100 Hz ripple, and the LED will visibly flicker.
- Measure V_R with DMM by reading V_SUP and V_A and computing V_R = V_SUP − V_A.
- Compute I_LED ≈ V_R / 330 Ω. Expect average around (5 V − 2 V)/330 Ω ≈ 9 mA, modulated by ripple.
-
With capacitor filtering (install C1):
- Install C1 from +V to GND observing polarity. Optionally add the 100 nF ceramic in parallel.
- Observe V_SUP ripple with Ch1 again; it should drop significantly.
- Observe V_A with Ch2; ripple should be much smaller and LED flicker should be gone or barely noticeable.
- Measure V_R and recompute I_LED; current ripple should be reduced. Example expectation:
- Ripple estimate: ΔV_SUP,pp ≈ I_LOAD / (C1 × f_ripple) ≈ 0.009 A / (470 µF × 100 Hz) ≈ 0.19 Vpp.
- If flicker remains, try 1000 µF or larger.
-
Quantify improvement:
- Reduction factor ≈ ΔV_SUP,pp (no C1) / ΔV_SUP,pp (with C1).
- Note visual result: steady LED with reduced current ripple.
-
Optional sweep:
- Vary sine frequency (50–200 Hz) and record the smallest C1 that keeps flicker invisible.
- Verify the inverse relationship: larger C1 → less ripple; higher f → less ripple.
Why the capacitor fixes flicker
- The electrolytic capacitor across the supply stores energy and fills in the valleys of the low‑frequency ripple.
- The LED current is set by R1 and the instantaneous supply voltage. Reducing ripple at +V directly reduces current modulation, eliminating visible flicker.
- A small 100 nF ceramic in parallel improves high‑frequency decoupling but does not affect 100/120 Hz ripple; the large µF value does the heavy lifting.
Common mistakes
- Reversed electrolytic polarity (C1 “+” must go to +V). This can damage the capacitor.
- Putting C1 in series with the LED or resistor. It must be from +V to GND (in parallel with the load/supply).
- Omitting the series resistor: never drive an LED directly from a voltage source without current limiting.
- Using too small a capacitor value and expecting no flicker at low frequencies.
- Scope ground not connected to the circuit GND; always clip to GND for accurate waveforms.
Safety and good practices
- Ensure C1 voltage rating comfortably exceeds the rail (≥10 V for a 5 V rail).
- Discharge C1 before rewiring; short it briefly with a 1 kΩ resistor to avoid sparks.
- Keep capacitor leads short to minimize series resistance and improve filtering.
Improvements
- Add a small series resistor (e.g., 10–22 Ω) between the source and +V to form an RC filter with C1 for even better ripple suppression.
- Use a constant‑current LED driver for maximum immunity to supply ripple.
- If multiple LEDs flicker, decouple each module locally with its own C1 near the load.
More Practical Cases on Prometeo.blog
Find this product and/or books on this topic on Amazon
As an Amazon Associate, I earn from qualifying purchases. If you buy through this link, you help keep this project running.



