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.

Converting A DC motor to ServoMotor

Status
Not open for further replies.

holobean

New Member
Is it possible to make a DC motor work like a servomotor? Coz im desperate to keep my project under budget. In my place, its hard to find servomotor and the only one i manage to find cost $RM 150.00. But its easier to find a stepper motor tho. Can u control a stepper motor like a servomotor? i just need 90 degree rotation with one pulse instead of sending multiple pulses to archive the same thing in stepper motor. Or do u have better suggestion?
 
RC Servo

Get an RC (radio-controlled) servo motor- the kind used on model cars and airplanes from a hobbyshop. It's $15 and up per motor if you do that. They are by far the cheapest servo motors. Everything is already made and put together and it is sold to a relatively large consumer base which drives prices down.

All other servo motors are pretty much industrial/research. What they do is go out and buy each individual part and put it together exactly how they need it. They basically change a DC motor to a servo motor (as you suggest) but this won't say you money...at ALL. This is absolutely the most expensive way to go about it.

You can change a DC motor as a servo motor, but that is the most expensive way to go. You need to get a motor, gearbox, and feedback device (like an encoder). And you have to get them such that they all mate together properly...and to do that you will probably have to buy them brand new from the motor manufacturer = VERY EXPENSIVE.

To make control a stepper motor like a servo motor, you need to add a feedback device and build your own electronics that will monitor the stepper's position (you would be basically doing the same thing as above, building a servo motor from scratch out of a stepper motor).

Stepper motors don't have feedback. This means that if something is blocking the motor shaft, and you energize the stepper motor windings in a sequence to move it 90 degrees, it won't and you will have no way of knowing if it really did or not without feedback.

A stepper motor can only be told how far to go, not where to go (like a servo motor). So if you want to control it using a position signal like a servo motor, you are going to have to do what servo motors do to accomplish this- add on a control circuit.
 
Last edited:
a servo is just a dc motor with feedback to allow precise control of motor positioning. with a microcontroller and quadrature encoder, you can construct one. there are several projects out there. google is your friend

A hobby servo will have poor resolution though the digital ones will be a little better. If that's good enough, for your application then you are in luck.
 
philba said:
a servo is just a dc motor with feedback to allow precise control of motor positioning. with a microcontroller and quadrature encoder, you can construct one. there are several projects out there. google is your friend

A quadrature encoder won't give you absolute positioning, as such it's NOT really suitable for a servo.

A hobby servo will have poor resolution though the digital ones will be a little better. If that's good enough, for your application then you are in luck.

It's more than enough for most uses, and far better than many alternatives.
 
You can use an encoder for absolute positioning, but it has to be relative to a reference point. THe encoder won't output a position as much as it outputs how far something has moved. YOu then need to keep track of how far it has moved relative to a reference point.

*Due to unclear wording pointed out in Nigel's next post, this 1st Paragraph has been corrected to:*
You can use an encoder to keep track of a reference point for absolute positioning. The encoder won't output a position as much as it outputs the direction and distance that the motor has rotated. You then need to keep track of how far it has moved relative to a reference point.

Plus if you use an encoder the degree of rotation possible by your servo can be multiple rotations. It is no longer limited by how many times the potentiometer can rotate and is only limited by how much the wiring can twist...but who needs an elbow that can rotate 1020 degrees?
 
Last edited:
dknguyen said:
You can use an encoder for absolute positioning, but it has to be relative to a reference point. THe encoder won't output a position as much as it outputs how far something has moved. YOu then need to keep track of how far it has moved relative to a reference point.

That makes no sense! - you first say "you can use an encoder for absolute positioning", which isn't true (for normal encoders). You then say the complete opposite "but it has to be relative to a reference point", which is true - and is relative positioning, not absolute at all.
 
Wordy mix-up. If you use an quadrature encoder to keep track of how far you have moved relative to a starting point (reference point) via uC you can use it to achieve absolute positioning feedback.

It is the same as knowing where you are standing and then counting the number of steps you have taken in a certain direction and then using that to figure out your new position. You don't know what your new position is, but what you do know is where you started and the direction/distance that you moved in. You then can use this to figure out your new position.
 
Last edited:
dknguyen said:
Wordy mix-up. If you use an quadrature encoder to keep track of how far you have moved relative to a starting point (reference point) via uC you can use it to achieve absolute positioning feedback.

It is the same as knowing where you are standing and then counting the number of steps you have taken in a certain direction and then using that to figure out your new position. You don't know what your new position is, but what you do know is where you started and the direction/distance that you moved in. You then can use this to figure out your new position.

That's still relative positioning, NOT absolute, and completely useless for a servo.

To use your own analogy?, I throw you in the back of a car, spin you round, drive you 492.5 miles in a random direction and let you out - you then take four steps forward in the direction I left you facing - do you know EXACTLY where you are any more?. You're just four steps from where I dropped you, in the direction I pointed you - that's a RELATIVE position, and you don't have the slightest clue where you might be.
 
Digital

Referencing movement relative to a reference point allows the same thing as absolute positoning. Ask yourself, what is he really looking for? Absolute positioning? Relative positioning? Or does he just want his motor to move to where he wants it to move? Different methods, same (oftentimes better) results. Though the quad encoder may be a relative positioning device, it can be used for the purpose of absolute positioning. What the method is called has no bearing on the fact that it accomplishes the same thing and in many cases the quad encoder has advantages over the absolute encoder.

As I said, you can use a quadrature encoder to know the motor's absolute position by using it to keep track of how much the motor has rotated from a reference point (such as the position the motor was at when the system was first powered up). For example, you could have an end switch that the motor might hit if it reached its limit of rotation. This switch could be used so that the system can self-calibrate itself to a known position to be used as a reference point upon startup. The point being that you can use the information from a quadrature encode to calculate the absolute position of the motor = servo motor.

Quadrature encoders are digital devices so that if you design the system properly so that the uC does not miss any pulses (ie. with differential signaling and sufficiently fast circuitry) you can use them for very accurate positioning feedback. There are no offset or drift errors due to the digital nature.

Quadrature encoders can also have much higher resolutions than absolute encoders (which are also oftentimes not digital and as result are also subjected to drift) so you can also get very accurate and stable positioning. It is far easier and cheaper to build a quadrature encoder in very small increments that is repetitive all around than it is than to build a digital absolute encoder of the same tiny increments which is unique at every point. Far from useless.

But, most of this is beyond the scope of the original question (the stability and precision requirements that is).
 
Last edited:
I'm sorry nigel, you are playing with words. you could build an absolute position scheme but it would be complex, expensive and, as dkn says, have resolution drawbacks. using quad feedback in conjunction with a starting point can give you absolute positioning. how do you think CNC stuff works? Yes, it is "relative" but from a starting point. With an extra line for a reference sensor, you can gain absolute positioning at a very reasonable cost.
 
philba said:
I'm sorry nigel, you are playing with words. you could build an absolute position scheme but it would be complex, expensive and, as dkn says, have resolution drawbacks. using quad feedback in conjunction with a starting point can give you absolute positioning. how do you think CNC stuff works? Yes, it is "relative" but from a starting point. With an extra line for a reference sensor, you can gain absolute positioning at a very reasonable cost.

"in conjunction with a starting point" is by definition relative positioning, there's no 'playing with words' involved - it's either relative or absolute, you can't say a relative postion is absolute because you specify a starting point.

The CNC machine you mention uses relative positioning, and will presumably move itself to a zero point before it can move anywhere else - so it moves 'relative' to it's zero point. Incidently, floppy disk drives used this same technique.

For examples of positioning:

Relative - move 25 degrees left from where you are now.

Absolute - move 25 degrees east of south.

The CNC machine can do either (to some extent), but to simulate an absolute position it will have to move to it's reference point first, or be 100% certain of where it currently is, regardless of power cuts or anything else.

However, likewise, an absolute positioning system like a servo will need to maintain a record of where it is, in order to move relative to it's current position - you can't tell it to go 25 degrees left, you need to work out where it is now, add the 25 degrees left to it, then tell it to go to the resulting position.

Really we need to know what the application is, and what it requires? - presumably as a servo was originally specified?, absolute positioning is required?.
 
then we completely disagree. no point arguing it because neither is going to be convinced.

except on the point of the need to know the application requirements...
 
Absolute Encoder vs Quad Encoder w/ Reference is similar to Brushed Motor (mechanical commutation) vs Brushless Motor (electrical commutation).

The first of each pair puts more complexity into the mechanical aspect thus simplifying the electronics, while the second of each pair puts more complexity into the electronics thereby simplifying the mechanics.

The only times that I can think of where you want an absolute encoder over quad encoder with reference is for extremely noisy systems where sound design techniques cannot compensate for the possibility of missing pulse counts or for lossy systems with power supplies that may have to restart too often to calibrate for the reference position upon startup. FInally the last situation is if you cannot deal with the additional overhead processing required for the quad encoder system and want simpler electronics (or coding).

Back to the original question: Look for radio-controlled (RC) servo motors used in model airplanes and cars. ;)
 
Last edited:
holobean said:
Is it possible to make a DC motor work like a servomotor? Coz im desperate to keep my project under budget. In my place, its hard to find servomotor and the only one i manage to find cost $RM 150.00. But its easier to find a stepper motor tho. Can u control a stepper motor like a servomotor? i just need 90 degree rotation with one pulse instead of sending multiple pulses to archive the same thing in stepper motor. Or do u have better suggestion?

Is 90 degree rotation ALL you need? Or a sequence of 90 degrees?
If the former, you don't have to use a motor at all. A simple solenoid and crank will do that.
It does make a difference to the replies if you spend some time explaining just what you are trying to do. You got a lot of unwarranted trivial exchange about wording I bet you did not bargain for.
Klaus
 
**broken link removed**

anyway this is what im planing to do, the gear part is up to my mechanical groupmate to decide.... but if u have ideas on how i can make my life easier and the mechanical job easier.. plz do suggest.. bare with me the picture.. im not so artistic.. thanks for taking ur time to help me out
 
holobean said:
**broken link removed**

anyway this is what im planing to do, the gear part is up to my mechanical groupmate to decide.... but if u have ideas on how i can make my life easier and the mechanical job easier.. plz do suggest.. bare with me the picture.. im not so artistic.. thanks for taking ur time to help me out

Looks like a perfect job for an RC servo, no gearing required!. Although I'd love to suggest you use a PIC to drive it (and you could), a 555 or two is all you need.

Thinking about it, you don't give any indication of how big this thing is?, if it's big you may require a much larger motor?.

If you'd mentioned in the first place what you wanted it for, it would have made this thread a LOT shorter :p you don't even need a servo, a simple reversable geared motor and two limit switches would be enough. But if it's small enough for an RC servo, that will make it nice and easy to do.
 
Servo

If an RC servo is not big enough, look for a digital RC servo or a "sail RC winch" servo. If those still aren't strong enough, you can attach those beefed up servos to an additional servo gearbox to increase the power 4 times (and slow it down 4 times). It looks like this:

**broken link removed**

It starts costing a lot though, but still nothing compared to building your own servo.
 
what is the scale of the project?
 
So, its just a tipping tank you want to build?
If this thing is not too large it can be done by simple overbalance and no electric motor of any kind has to be involved.
The tank (when empty) is balanced on a pivot arm so that it wants to turn rightway up and be held there by a magnet at the end stop.
After the water level had reached a certain point the tank overbalances and the magnet can no longer hold it upright. It now rapidly spills the water and returns to the upright state when empty. The cycle gets repeated by the speed it takes to fill the tank to the critical level.
This may be hard to visualise and some experimentation would be required. But the tipping spoon rain gauges work very well on this principle and I see no reason why it could not be scaled up a little.


If it was me I would try the simplest approach first and tinker with servo's, gears and controllers later at plan B.
Klaus
 
Oh.. sorry about the little info i gave still new at this forum thing.. erm.. i would love to use the shortest and easiest way.. but i have a mechanical guy in my group and its a interdisplinary project... and he needs to do some part in the project.. okey.. the project prototype as in the pool is probably 1x1.5meter.. and the tank width 0.25 or 0.5meter most probably.. height 0.5m or higher and the lenght is less than 1m.. so its a small prototype... i will try to check out the RC servo... and i don think i can use the tipping method as it would b less appropiate for my case.. as i need to use time interval or different level of water to make different types of waves...
 
Status
Not open for further replies.

Latest threads

Back
Top