Measuring Servo's Resistance and Calculating it's efficiency

Discussion in 'The Projects Forum' started by ddang, Aug 3, 2013.

1. ddang Thread Starter New Member

Aug 3, 2013
5
0
Hi all. I am working on a project. My servo is the main mechanism of actuation. I am trying to find my power input to the system. So I have a few questions regarding servos.

1) How do you measure the resistance of a servo?
I know there are 3 pins (2 +/- pins that go to a Power supply and a 3rd pin that goes to a μC). When I put the probes of my multimeter on the +/- pins, I get a 300 ohm reading. When I put it on the + and the 3rd pin (one that goes to the microcontroller) I get a gigantic resistance reading in the MΩ range. Both values seems much too large.

2) Another question I have is how do I calculate the power input to my system from the servo? I'm guessing this equation should be something like efficiency of the motor multiplied by the power input to the "motor" (not system). But I am unsure how to determine the efficiency of the servo nor how to determine the power input to the motor.

If anyone has some insight, it would be greatly appreciated.

Jul 18, 2013
13,161
3,630
First why would you want to? and what kind of servo is it?

What on earth are the points you are measuring? Any details/part No's/schematics?

What type of drive are you using for the servo and controller feedback device?
This opens many questions as to what is the motor to load inertia ratio?
Way more details are required when designing a servo based system.
Max.

3. ddang Thread Starter New Member

Aug 3, 2013
5
0
I am really knew to using these kind of devices.

I am using a Savox brushless SB-2272MG servo motor (http://www.savoxusa.com/Savox_SB2272MG_Digital_Servo_p/savsb2272mg.htm).

The servo is controlled by an Arduino Microcontroller's PWM pin.

I am trying to measure resistance because I was trying to calculate power using the equation P=I^2*R, where I=current, R=resistance.

I am not familiar with the "drive" terminology or feedback. Perhaps, pasting my code can answer the question?

The code is (a lot of the comments NOT updated):

Code ( (Unknown Language)):
1.
2. // Sweep
3. // by BARRAGAN <http://barraganstudio.com>
4. // This example code is in the public domain.
5.
6.
7. #include <Servo.h>
8.
9. Servo myservo;  // create servo object to control a servo
10.                 // a maximum of eight servo objects can be created
11.
12. float pos = 0;    // variable to store the servo position
13.
14. void setup()
15. {
16.   myservo.attach(9);  // attaches the servo on pin 9 to the servo object
17. }
18.
19.
20. void loop()
21. {
22.   for(pos = 21; pos <=71; pos +=1)  // goes from 0 degrees to 180 degrees
23.   {                                 // in steps of 1 degree
24.     myservo.write(pos);              // tell servo to go to position in variable 'pos'
25.     delayMicroseconds(1660);                       // waits 15ms for the servo to reach the position
26.   }
27.   for(pos = 71; pos>=21; pos-=1)     // goes from 180 degrees to 0 degrees
28.   {
29.     myservo.write(pos);              // tell servo to go to position in variable 'pos'
30.     delayMicroseconds(1660);                       // waits 15ms for the servo to reach the position
31.   }
32. }
33.

The wiring diagram looks something like this, except I am using an external power supply instead of the arduino's 5V pin.

There are no other electrical components (resistors, caps, transistors, etc...) in my system.

Last edited by a moderator: Aug 4, 2013

Jul 18, 2013
13,161
3,630
I realize now these are model/remote control servo's?
I automatically think of Robotic and motion control servo's so this is a completely different area you are in.
Max.

5. ddang Thread Starter New Member

Aug 3, 2013
5
0
I'm not sure what the difference is between the two. I'm using the servo to rotate a shaft.

Jul 18, 2013
13,161
3,630
Industrial Robotics and motion control use a controller with PID loop feed back.
Unless you have a encoder or other such device back to the controlling device with a PID loop arrangement then this would be the difference.
Max.

7. THE_RB AAC Fanatic!

Feb 11, 2008
5,435
1,309
Here's how I do it; Put a 1 ohm resistor in series with the power pin to the RC servo.

When the servo is operating (moving or lifting a load etc) use a voltmeter across the resistor, and read the voltage, which gives you the amps or mA drawn by the RC servo. (I = E/1)

Also measure the voltage from the RCservo power pin to the ground pin.

Once you have the servo's volts and amps, you know the comsumed power using P = EI.

8. ddang Thread Starter New Member

Aug 3, 2013
5
0
Thanks.

Why do you need a resistor to do this?
I've been measuring the current just by putting my multimeter in series with the motor and power supply, but maybe that's wrong?

9. Sensacell Senior Member

Jun 19, 2012
1,514
404
The one-ohm resistor trick is really the same as putting the multimeter in series with the lead, but it's more convenient.

You can install a few resistors in your circuit and measure the voltage on them without having to break the circuit, it's usually safer when your probe slips off it's not 'hot' to destroy your circuit. I blew too many things up doing it the other way.

I keep a range of resistors: 1 ohm, 0.1 and .01 around for different current levels.

10. ddang Thread Starter New Member

Aug 3, 2013
5
0
Oh I see. That brings me to my other question of how to measure the motor's resistance. I believe neither of the resistance values mentioned in my original post would be correct if my method of measuring current is correct as the relationship P=IV would give a different power than P=I^2*R.

11. THE_RB AAC Fanatic!

Feb 11, 2008
5,435
1,309
Yes the resistor for measuring current means you don't need two meters to read both amps and volts. You just need a voltmeter and can touch it on two places (while the circuit is operating) to get two readings.

I think you should forget about the "Servo's resistance". The RC servo is a COMPLETE CIRCUIT with a motor and driven from a driver IC that controls the motor current. The amount of current it draws depends on the servo internal IC workings, and varies with the error at that point in time (distance of the shaft from the desired location).

You are never going to be able to measure the motor's "resistance" from the input volts and amps readings going into the servo!

The most useful information is the amount of current it draws during certain loads, assuming your PSU voltage is reasonably fixed.

If the PSU voltage can vary a lot then you need to read voltage as well, so you can work with consumed power of the servo.

djsfantasi likes this.