555 IC as servo driver

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.

Mike i noticed that noise too while experimenting, via arduino its kinda smoother.

Wvmarle how via mcu is cheaper?
555 timer is 5cents.

If there's an MCU in the mix already, using it doesn't cost anything extra, making it cheaper than adding the 555. That's why. It's an Arduino forum after all here!

surepic:
forgot to mention I have only 1n4007 diodes but I know they are slower than 1n4148 can this make any issues?

Insignificant at 50 Hz.

surepic:
Mike i noticed that noise too while experimenting, via arduino its kinda smoother.

Wvmarle how via mcu is cheaper?
555 timer is 5cents.

Yeah, I puzzled over that, too, but then realized two things:

  • It's more than just the cost of the 555. There's also the support components and the cost of designing, producing, and stuffing the PCB.
  • He was speaking in terms of an Arduino already present -- which means, the expenditure, already happened.

:grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning: :grinning:

surepic:
Mike i noticed that noise too while experimenting, via arduino its kinda smoother.

Well the noise I am talking about is electrical noise which manifests its self as jitter. This is due to noise on the supply line to the 555 timer. And as I had other servos in the circuit it would have taken a lot of filtering out. This was because I was working on a Raspberry Pi and it only has sufficient hardware to drive two servos. I wanted a third for a pen lift.

This is the NE555 circuit I used:-

Well, if this idea wont work then i will put arduino nano or micro and will forget about 555 forever :-))

Mike why you were driving servo via fet instead of mosfet? Isnt it more efficient in this shcematic to use mosfet? Something like 2n7000?

Mike why you were driving servo via fet instead of mosfet?

I wasn’t, i was using a transistor. I use an NPN transistor to invert the signal and a PNP to switch between the two pulse widths.

Isnt it more efficient in this shcematic to use mosfet?

No.
You are not providing the the servo with any power, you are just creating a control signal. No need at all for a FET of any description.

Grumpy_Mike:
This is the NE555 circuit I used:-

i'm assuming the whole bottom line connects to GND ?

yes

BabyGeezer:
i'm assuming the whole bottom line connects to GND ?

yes

ReverseEMF +1 for great link.

I built exact same circuit without any modifications of capacitors or resistors, luckily even have 47K pot.

But I`m not getting duty cycle below 2ms.

50hz its holding perfectly tested with freqmeasure library.

duty cycle I`m taking via pulseIn() on HIGH


this is image for schematic from same website.

and attached is printscreen how its holding 50hz.

why I cant get short duty cycles ? resistors that I used are 20% tolerant but each measured with multimeter before putting on the board to be sure they all have right values.

calculations for duty cycle from that website.

The formula used is as follow:

t= 1.1RaC

Ra is the total of R4 and R3. So, the minimum pulse time when R4 is set to 0, is:

t= 1.1 x 8200 x 0.0000001

t= 0.902 ms

Note that this minimum pulse width time is longer than the trigger pulse to ensure that the pulse width generator doesn't constantly generate0.65ms pulses one after the other, but at a steady +- 50Hz interval.

WhenR4 is set to maximum, the time is

t= 1.1 x 18200x 0.0000001

t= 2.002 ms

So what duty cycles do you get for different settings of that pot? And different values of the timing cap and resistor?

Are you using ceramic or film type caps for the timing?