Servo position set with a 555 timer circuit

SG90 servo responds to short pulses that occur approx. every 20ms (milliseconds). The time that the pulse is high is what actually sets the position that the servo turns to. It can be high anywhere from about 1ms to 2ms while the signal is low for the rest of the 20ms.

It is very easy to set an astable 555 timer output high for a shorter period of time than it is low.

Trimpot spins servo by using 555 timer astable mode PWM output by electronzap
Trimpot spins servo by using 555 timer astable mode PWM output by electronzap

I didn’t measure it, but the 100k discharge resistor with a 0.22µF capacitor seems to keep the pules close enough to 20mS to keep the servo happy. While the timing capacitor is discharging, the output is low.

Also not measured, the charging resistance of between 4,000Ω and 14,000Ω seems to keep the high side of the pulses close enough to 1ms (4k resistance) and close enough to 2ms (14k resistance) to keep the servo happy.

One way that I am thinking of modifying this circuit in order to just change between 2 positions instead of a highly variable position, is to use a fixed resistor plus a switch controlled parallel resistor in place of the trimpot.

Good pages to check out next:

 To support this site, check out the following links:

Home page

  • Information on this site is not guaranteed to be accurate. Always consult the manufacturer info/datasheet of parts you use. Research the proper safety precautions for everything you do.
  • Electronzap is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to amazon.com.