Continue to Site

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.

  • 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.
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.
 
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
 
hi,
This is one option for a final circuit.
E
 

Attachments

  • A002.gif
    A002.gif
    39 KB · Views: 358
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,
 
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.
https://circuitdigest.com/article/servo-motor-basics
 
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.
 
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.
 
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:
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.
 
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
 
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

  • LM339 PWM Servo.asc
    3.5 KB · Views: 128
Last edited:
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.
 
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:
**broken link removed**
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?):
**broken link removed**
 
Now adding the existing Arduino+relay shield and replace push buttons to relay 1's and relay 2's No(s)0 and Com(s):
**broken link removed**
The downside going thru wifi is ever I switch on relay 1 and off it takes a while till it actually react to it, by the time the relay clicks the motor is already reached its position, that's why I need to slow it down as much as possible.
 
Does the circuit I posted look too complex for you? :)
 
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

New Articles From Microcontroller Tips

Back
Top