555 IC as servo driver

Has anyone here experience with making 555ic work with servo motor ? 2 days I cant make servo work properly with my schematics. Proteus and fastlab simulations show that it must work but in reality it isnt working as expected.

Tried ready schematics from 555-timer.com but again non of them work properly.

Can attach my schematics which are working in fastlab and proteus if that will help.

On output I`m getting 49-52hz with 9-12% duty cycle as per simulations which should make shaft of the motor to turn +90 degrees. if duty cycle is reduced to 4-5% its suppose to turn -90%. problem is with -90%. its either not turning or turning very slow.

thanks

surepic: Can attach my schematics which are working in fastlab and proteus if that will help.

Now what do you think yourself? Will it be useful or not to show the schematic you're talking about?

At 276 posts you should know the answer...

Sorry, here are 3 pdf files attached. they all are working in proteus.

purpose of this project is to run servo +90 and 0degrees or +90 and -90degress.

I didnt draw in the schematic because didnt get into that point yet feedback will be tactile type button/switch on the other end of motor arm. Ideally I want to make this project on 556 timer i.e. 2x555ics in one package. that way I can get feedback from that tactile buttons. if arm is at +90 degrees then pushbutton will cut one 555IC from power same time leaving other 555 to operate, and if opposite side button is clicked then same story but with another 555IC.

so same output must go to comparator/mosfet circuit then to motor.

555 timer1.PDF (12.4 KB)

555 timer2.PDF (10.8 KB)

555 timer3.PDF (12.5 KB)

I think the pulse widths might be too wide. 9% of 50Hz would be 1.8mS 12% od 50Hz would be 2.4mS.

You want 1 mS to 2mS for -90 to +90, so I think you'd be mostly to one end with the %s you are showing.

But dont this servos have pretty wide permissible range ? Over 2ms is they count same as 2ms and below 1ms is same as 1ms.

One of my pdfs is showing that. I took 80ohm resistor out and it didnt affect servo it was moving to the same direction with same slow speed. I just drew another one in fastlab this one looks promising freq variation is within 5hz and duty cycle can be varied manually from 0.1 to 20%! Will attach this schematic too.

update:schematics attached in jpg . 20%,10% and 5% duty cycle. within 5hz frequency deviation.

2 diodes, 20kpot ,0.1u capacitors ceramic.

I've only used the Servo.h library and read the specs on common servos. 50Hz and 1-2mS wide are the usual frequency & range.

Simulations, I don't do that. Only real hardware.

Try connecting a scope and see what you really get out.

My approach to the circuit would be using two 555s. One astable, the second monostable. The astable for the frequency, triggering the monostable for the actual pulse length. That allows you to adjust both independently.

I don't recognize the way you wired it, have to study your circuits in more detail.

as per my calculations:

R1=2.2kohm C1=10uf

R2:270ohm=2ms

R2:120ohm=1ms

R2:190ohm=1.5ms

Note that those diodes will throw off the actual timing.

You will have to measure the pulse length you get to know for sure - either by connecting a scope, or connecting it to an Arduino and read the pulses (to measure length and frequency).

forgot to mention I have only 1n4007 diodes but I know they are slower than 1n4148 can this make any issues ? Will test with arduino tomorrow.

It's the voltage drop over the diodes that will affect it most. That affects the voltages at the timing cap and the trigger pin. Trig works at 1/3 Vcc and 2/3 Vcc which is 1.7V and 3.3V, the 0.5-0.7V drop over the diode is a lot compared to those voltages.\

Did you (try to) measure the pulse you actually get already?

Just posting these photos, from the OP, so they can be seen:

c417df7c8df9e2bf87856482c4a8864abf469c2f.jpg

cbca81c2a0a2ae9e5c8a84f962cf73c9b432d4e7.jpg

83c98c8058f02e9383646dd87b8f8fa1d899c23c.jpg

wvmarle: Did you (try to) measure the pulse you actually get already?

No i didnt was concentrated on datasheet too long. Tomorrow will measure the frequency and pulse length with arduino and will update. Then second question arises what are professional hardware simulators for ? I even chose exact models of what Im using except servo motor model. There is scope too inside proteus I checked the pulse length and frequency with it but when its time to do in real world everything needs to be rechecked again. Im thinking of resistor and capacitor tolerances too now. IF they will be off 5% thats enough to shift the pulse.

Lots of real world variance.
I don’t know how well they take the diodes into account - that’s definitely a tricky one.
Tolerance of the parts indeed, resistors often <1% but caps can be 10% or more, especially electrolytics.
Internal resistance of the 555’s pins.
Internal resistance of the capacitors (ESR).
Stray resistance & capacitance of the wires (though that’s usually small enough to ignore, it’s usually in the order of a few mΩ and a few pF).

wvmarle:
Lots of real world variance.

Tolerance of the parts indeed, resistors often <1% but caps can be 10% or more, especially electrolytics.

And, potentiometers can be 20% and even 30%!

Check this out:

http://www.seattlerobotics.org/encoder/200210/servoex/ServoExcerciser.htm

That's pretty much what I had in mind.

Saves a whole lot of balancing frequency/pulse length (those are linked if using a single 555).

Thanks for the link. As was mentioned in one of my posts 556 was in my mind if this option will fail I wasnt thinking of monovibrator mode as wvmarle suggested I was thinkinf of adjusting one 555 for 1ms pulse and second 555 for 2ms pulse with fixed resistors. though monovibrator approach is interesting too one for frequency second one for duty cycle. Purpose is to make 1 device which can turn motor arm to +90 and -90 depending what circuit will be triggered. Price,size and power consumption of circuit matters in my case.

So there's no Arduino or other MCU in the mix? Because that'd be the cheapest option.

Otherwise as you want two 555s anyway, go for that circuit in #15. A transistor allows you to switch on/off a resistor based on an external signal, changing the pulse time (so two resistors in parallel - one with the transistor in series - so if the transistor is off you have high resistance, if on you have the resistors effectively in parallel and a low resistance).

surepic:
But dont this servos have pretty wide permissible range ? Over 2ms is they count same as 2ms and below 1ms is same as 1ms.

No that is not how servos work, not the ones I have seen anyway.

I used a 555 as a pen lift servo control in a drawing machine. However the noise made it too jittery to use in the finished project.