• Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

555 timer circuit for servo, how to reduce speed?

Status
Not open for further replies.
Hi all,
I'm working on a Pan and Tilt system for my security camera using a 555 timer circuit outputting pwm to turn a RC servo left or right, here are some pictures & video of the circuit board:
http://i1220.photobucket.com/albums/dd459/happytriger2000/Forum/electrotechonline/Servo tester.jpg

http://i1220.photobucket.com/albums/dd459/happytriger2000/Forum/electrotechonline/IMG_5101.jpg

video:
http://vid1220.photobucket.com/albums/dd459/happytriger2000/Forum/electrotechonline/IMG_5102.mp4


My question is what do I have to do in order to reduce the speed of the servo rotation?

thanks,
 

Les Jones

Well-Known Member
Most Helpful Member
Model servos are position controllers. The position required is defined by the width of the pulses from the pulse generator. The pulse generator circuits you are using just tell the servo to move to one of the two positions defined by the two preset pulse widths. The servo will just move at its fixed speed until it reaches on of these positions. To change the speed it moves you would need to control the rate at which the pulse width changes. You would be telling it to move to a position close the tha last one ten to move to a position a bit further from the starting position and so on. You wold probably be better off using a potentiometer for setting the pulse width rather than two push buttons. The speed it moved would then be contropled by how fast you moved the potentiometer.

Les.
 

ericgibbs

Well-Known Member
Most Helpful Member
hi 2000,
The servo position is based on a 20mSec frame period.
During each 20mS period the output is set High for a period of time equal to the amount you require the servo to move/hold to, from its starting/rest position.

Do you follow that OK.?
E
 

ericgibbs

Well-Known Member
Most Helpful Member
hi,
This is one option for a final circuit.
E
 

Attachments

Hi all,
Thank you all for the explanations.
les, adding a potentiometer is a good idea but I still need the push buttons for clockwise and Anti-clockwise because the push buttons will be replaced with relays controlled over internet, but currently the rotation is turning too fast.
Will it help if I add a 100K potentiometer between 1K and BC547?

ericgibbs, from the picture you sent there are 2 x 555 time chips used will this slow the rotation?, will do an experiment with your circuit.

thanks,
 

ericgibbs

Well-Known Member
Most Helpful Member
hi 2000,
If its a servo system, it should not rotate.???
It should turn a number of degrees from its rest position to the degree value set by the period the servo drive is High.
Usually less than about 210 deg max.
E
Look at this link.
http://circuitdigest.com/article/servo-motor-basics
 

Les Jones

Well-Known Member
Most Helpful Member
Why don't you just use small geared motors instead of servos. You could remove the servo components from the model servo and then you just have a geared motor. If you don't know how to do that here is a web page that shows you how. You would drive the motors using two SPCO relays (Or an H bridge.) and control the speed by controlling the voltage to the motor. (or use PWM.) You would probably have to add limit switches to limit the travel.

Les.
 

audioguru

Well-Known Member
Most Helpful Member
Your camera does not rotate, instead one servo tilts it up and down and another servo or pans it left or right.
Your servos are moving too fast because there is nothing to slow them down. You need a circuit for each servo to slowly vary its PWM to the speed you want.
 

crutschow

Well-Known Member
Most Helpful Member
I'm not familiar with these servos.
If you indefinitely apply a set pulse width to the servo my understanding is that it will just stay in that position until a different pulse width is sent?
Or does it have to go to zero signal when not moving?
 
Last edited:

alec_t

Well-Known Member
Most Helpful Member
If you indefinitely apply a set pulse width to the servo my understanding is that it will just stay in that position until a different pulse width is sent?
That's correct. Pulse period ~ 20mS. Pulse width is between 1mS and 2mS, corresponding to respective travel limits. 1.5mS = centred.
 

cowboybob

Well-Known Member
Most Helpful Member
My question is what do I have to do in order to reduce the speed of the servo rotation?
In DC servos, torque is a current issue and rotational speed is a voltage issue.

Reducing the voltage will slow the servo.

Don't have any idea, in this case, how the torque will be affected, but this is just a test.

If this works to your satisfaction, here's a possible circuit alteration you might try:
upload_2017-2-2_18-41-18.png
 

crutschow

Well-Known Member
Most Helpful Member
Based upon my limited understanding of the servo operation I designed a circuit to generate 50Hz pulses that can slowly go from 2ms to 1ms and back, as desired. It requires just one LM339/393 comparator chip and a few passive parts.
The LTspice simulation is shown below:

upload_2017-2-3_23-46-53.png

The LM339/393 comparator U1 is configured as a relaxation oscillator to generate a 50Hz clock.
This clock signal generates an exponential ramp by R3C3 (2ms time-constant) which goes to one input of comparator U2.
At the positive edge of the clock pulse, the comparator output goes high (through output resistor R6) and the ramp starts rising.
When the ramp voltage reaches the Ref voltage as determined by R4, R5, and R7, the comparator output goes low.
This pulse width is 2ms when switch S1 is open and 1ms when S1 is closed.

At the fall of the clock pulse, the ramp voltage is rapidly pulled back to 0V through D1 for the start of the next clock pulse.

The time it takes the Ref voltage to change from one level to the next (and thus the time for the pulse width to smoothly change) is determined by the R8C4 time constant. This can be made as long as desired.
The time constant is quite short for the simulation, so the change in pulse-width (when V(pb) goes high) can be readily seen in a reasonable plot time.
R7 and R8 set the desired pulse-widths. These can be pots for ease of pulse-width setting.
Also separate switches can be used in series with both R7 and R8 if desired.

As a side note, I'm curious if any other servo users might have use for such a circuit to slow the servo movement. (?)
 

Attachments

Last edited:

Les Jones

Well-Known Member
Most Helpful Member
If the OP insists on using a position servo system then I think controlling the rate at which it steps between the preset positions would be simplest. I would suggest 256 positions. so position zero would be given with a pulse width of 1 mS, position 128 (Half way.) would be 1.5 mS and position 255 2 mS The 256 positions would be stored by an 8 bit up/down counter. The up and down buttons would increment or decrement the counter a the desired rate. This could be done using ICs but it would be much simpler to use an 8 pin micro such as a PIC12F1840 or an Atmel ATtiny85.

Les.
 

ericgibbs

Well-Known Member
Most Helpful Member
hi 2000,
Looking at the OP's link showing the actual pan/tilt head, it looks fairly substantial.
A general purpose transistor, BC547 will not be suitable.

Also have you calculated the torque required to pan/tilt that head.?
Is your servo motor able to provide that torque,? as it appears to a be direct drive.?

E
A001.gif
 
In DC servos, torque is a current issue and rotational speed is a voltage issue.

Reducing the voltage will slow the servo.

Don't have any idea, in this case, how the torque will be affected, but this is just a test.

If this works to your satisfaction, here's a possible circuit alteration you might try:
View attachment 104017
Hi Cowboybob,
I tried the circuit you provided, it does seem to slow down a bit:
The circuit on the right is the circuit you provided and the one on the left is the original:
http://vid1220.photobucket.com/albums/dd459/happytriger2000/Forum/electrotechonline/IMG_5120.mp4
I would like to try lower than 4.5V so I built a simple adjustable power supply:
and turn the pot so that the ouput is 2.15vdc lower than this will not work (underpower?):
http://vid1220.photobucket.com/albums/dd459/happytriger2000/Forum/electrotechonline/IMG_5122.mp4
 

crutschow

Well-Known Member
Most Helpful Member
Does the circuit I posted look too complex for you? :)
 

audioguru

Well-Known Member
Most Helpful Member
When you reduce the voltage to the motor on the servo then you also cause its current and power to reduce. Then it gets stuck and does not work.
When you feed the servo with its rated voltage and vary the width of the pulses then it moves with full power at whatever speed the pulse widths change.
 
Status
Not open for further replies.

Latest threads

EE World Online Articles

Loading
Top