Controlling the intensity of an LED with a 555 and a potentiometer is fairly straightforward. Like this circuit (feel free to criticize). LED controlled by a 555

I would like to go one step further and have the duty cycle increase then decrease (almost) linearly with time with a period of a few seconds. With a potentiometer to adjust the period between 0.5 and 10 seconds. I would also like to be able to adjust between 0 and 100% the minimum and maximum duty cycle that drives the LED. The PWM frequency should stay above 1kHz (basically visually flicker free) and should probably be constant. Only its duty cycle should slowly increase and decrease.

Having a pair of potentiometers to set the min and max duty cycle would allow (among other uses) to get a constant duty cycle.

Additionally, I'd like to avoid the easy solution using a microcontroller and rather use mostly 555's, passive components and MOSFETs/BJTs for a few reasons:

  • I'll learn a lot more and that's one of my main motivations here
  • I have those parts readily available and hopefully in large enough quantity
  • It'll looks cool and old school 😎

This task seems very much within reach of one or two 555, but I can't figure it.

Here are the bad ideas I've had so far.

  • Change the voltage on the CONT/Ctl pin of the 555 to adjust the duty cycle. Unfortunately it would make the behavior very non-linear when the voltage gets close to GND or VCC.
  • Use a MOSFET as a variable resistor. But the linear region of a MOSFET isn't that big. And I'd still need to generate a triangle voltage from GND to VCC.
  • \$\begingroup\$ Over what range of PWM do you want it to vary, and what range should frequency stay within? This can be done mostly with two 555s (or a 556); you may need an op-amp, comparator or a few transistors to get better performance if you require most of the range. \$\endgroup\$ Mar 18 at 6:30
  • 1
    \$\begingroup\$ A microcontroller and 10 lines of code? \$\endgroup\$
    – winny
    Mar 18 at 9:41
  • \$\begingroup\$ @winny My question already explain why I'd want to avoid this solution. I wouldn't learn anything, and I have a lot fewer MCU (barely 2) than 555s (98 remaining) at my disposal. (And 555s are cool, aren't they? ^^) \$\endgroup\$
    – Celelibi
    Mar 18 at 16:15
  • 1
    \$\begingroup\$ Sorry, I missed that. Everything is possible with enough 555s but the right tool for the job is an MCU. \$\endgroup\$
    – winny
    Mar 18 at 21:00
  • 1
    \$\begingroup\$ Search on "heartbeat LED 555" and you will see a number of circuits. I would also use a cheap pic or similar (sorry, I know it was already brought up). \$\endgroup\$
    – DrG
    Mar 18 at 23:28


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.