I have a variable PWM signal at 13.2 kHz. I want to control a servo with this signal, but the servo needs a much lower frequency, at most 80 Hz. My first idea was to use two binary counters, a NOT gate, and an AND gate. That should do the trick, but it's definitely not the best solution. It requires a lot of ICs with a lot of unused pins. Also, the servo is looking at a pulse about 1-2ms wide, not a full PWM, so only about 8% of the PWM range would be useful.

Using an RC filter, I can just convert the original signal to an analog voltage. Is there any way I can use this analog voltage to control a 555 to get the signal I need?

My only experience with the 555 is using a pot to adjust the duty cycle.

  • 1
    \$\begingroup\$ This is a job for an MCU. I'd probably select the cheapest, smallest thing with peripherals that met the need. In this case, I think you could get by with a PIC10F20x or PIC10(L)F32x device. An RC filter will be a trade-off between allowable ripple and settling time. At 80 Hz, your settling time should be well less than 10 ms, I'd imagine. Say 5-6 ms? \$4\tau\$ might be good enough. But if so, remaining high frequency peak-to-peak ripple will be about 2%, too. Can you accept that? \$\endgroup\$ – jonk Oct 31 '18 at 5:59
  • \$\begingroup\$ I'd love to use an MCU but they are forbidden for my application. I need to use discrete components. I'm not working with high tolerances or anything here, I could settle for a 300ms setting time if I need to. \$\endgroup\$ – griffin175 Oct 31 '18 at 7:00
  • \$\begingroup\$ I'd recommend using a better filter than RC, to start, though it's possible you can get by with the RC. You decide that. But a low-pass will convert PWM to a voltage. I think you could get by with a 555 running at a low duty cycle for 80 Hz. You'd need a voltage-controlled current sink/source to adjust the duty cycle within a 1-2 ms adjustment range. It would take a little thinking to work out exactly how to get what you wanted. \$\endgroup\$ – jonk Oct 31 '18 at 14:30

This is definitely a task for a microcontroller, but if you are bound not to use one...

PWM signals can be generated by creating a triangle wave, and taking the output of a comparator, which has the reference input set by the control input. enter image description here

This image is from here

To get your control input a simple RC integrator is all that is needed, given that the control PWM is so much higher than the output.

Since you mention using the venerable NE555, there's a section in the datasheet (section 9.2.2) that describes a PWM generator. Since this uses just the standard RC arrangement, the triangle wave isn't exactly linear, it's the exponential decay, but if you use a small enough ratio of the trigger voltages to the supply voltage, the linearity is tolerable. enter image description here

The datasheet example requires a clock for the PWM generator, which you can do with a second 555 - the 556 is a 2 in 1 package to minimize component count.


Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.