This will seem pretty newbie, and it probably is.
I have to measure a certain current flowing through two 14V DC motors that
are in parallel (identical ones). I know that depending on load and speed
they can consume up to 20amps. My multimeter only goes up to 10 amp. How can
I safely measure current under different scenarios (different speeds and
Even better, is there a circuit that is easy to build that will allow me to
log current consumption over time?
simple: google "Current-Sensing resistor".
Basically, a reistor of <0.1 Ohm value you put in series with the
motor. It normally has 4 terminals: two for the high-current path, and
two for the sense path.
You then measure voltage across the sense terminals.
complex: use a Hall effect device.
rich walker | Shadow Robot Company | email@example.com
technical director 251 Liverpool Road |
For a direct current you can put a very low series resistance in the supply line
and measure the voltage drop accross the resistance -- use Ohm's law to figure
out the current draw.
If you're using PWM (1-100khz), there are inductive sensors that will output a
voltage proportional to the current in the circuit.
Hope that helps -- m
(Replies: cleanse my address of the Mark of the Beast!)
Ok, I know ohms law, but something is wrong in my head, let me clarify.
Suppose that I did connect a .1ohms resistor in series with the motor.
Turned on the motor, set speed and load to the condition I wish to measure
then I measure the voltage drop across the resistor.
Let's say it is 2V, then I=2V/0.1ohms A right?
Now I increase the load of the motor, voltage drop increases to 3V, 30A
Now what is confusing me:
Resistor: E=2V, I A, R=0.1 Ohms
Motor: EV, I A, R=?
Total: EV, I A, R=?
R_total = E_total/I_total = 0.7 Ohms
Therefore DC resistance = 0.6 Ohms
Am I correct so far?
If yes, following is the second measurement:
Resistor: E=3V, I0A, R=0.1 Ohms
Motor: EV, I0A, R=?
Total: EV, I0A, R=?
R_total = E_total/I_total = 0.46 Ohms
Therefore DC resistance = 0.36 Ohms
I don't know why, but I always had in mind that resistance should be a
constant value. Isn't that true?
Well, if I'm mistaken in thinking that, then I suppose my calculations above
are correct, right? And if so I still have two questions:
1-Is it save to measure voltage across the resistor even with very high
(my instincts say yes, because the voltmeter would be in parallel, right?
but I had to ask either way... better safe than with a damaged multimeter)
2-If I want to measure up to 50A with a current sensing resistor, then
voltage across resistor would be 5V right? If so, don't I need a 250W!!!
resistor? The maximum I found on mouser was a 0.1 Ohms - 5W... how's that?
thanks for all the fish
When you're starting to measure currents this high a field sensor is
probably better. Harder to make yourself, but if you're not going for
extreme accuracy, works okay.
Basically you take one of the leads to the motor and wrap it around a
torroid a few times. Stick a linear Hall effect sensor in the middle,
and read that. For some sensors I did I cut out a small segment of the
torroid and placed the Hall effect sensor in the gap. The more turns of
the motor lead around the torroid, the higher the reading you'll get,
but avoid lots of turns, or you'll just make yourself an extra inductor
in your robot.
For my robot sensorial package, I just ordered an IC that I believe does
exactly what you described (Allegra ACS750). But I wanted to take some
measurements of my motor in order to dimension batteries. I guess I'll wait
for the IC to arrive, as I don't have any resistor smaller than 5 ohms at
The #'s you gave last time are kind of hosed. You need a "much" smaller
20A * 0.1ohm = 2v
(20A)^2 * 0.1 ohm = 40W <-- too big, too hot, eats all your power.
For these currents, easy way is to get an Ohmite series 10 or 60
resistor from digikey.com, value = 0.01 ohms. Put it series with the
motor in the "low" side [to gnd]. If you put it in the high side, it's
much harder to do the measurement.
20A * 0.01 ohm = 0.2V
(20A)^2 * 0.01 ohm = 4W <-- so use a 5W resistor
To measure the current, either use the "DC" scale on your DMM [to get
the "average" value], or else use a 10K-0.1uF RC low-pass filter, and
look on a scope.
If you want to install a ckt in your robot, you should go to an even
smaller R value, and then use an opamp after the RC-filter to boost the
signal to a level high enuf to feed into an A/D converter. Eg,
20A * 0.05 ohm = 0.1v
(20A*20A) * 0.05 ohms = 2W <-- this is a $0.42 Ohmite series 60
0.1v * 20(gain of opamp ckt) = 2.0V
(this ckt will measure to 50A intermittently)
- dan michaels
Small typo: (20A*20A) * 0.05 ohms = 20W
i.e. use a 0.005 ohm resistor.
Digikey #15FR005-ND; Mouser #588-15FR005
Current sense resistor: 0.005 ohm, 5W, $1.85/ea
The 2W is cheaper, but its 3% instead of 1% precision.
Regarding the original poster's comment:
Right, left the extra "0" out. Use 0.005 ohms. Also, for "practical"
purposes, like in a robot, it probably doesn't matter a lot whether you
use 1% or 3% or 5%. For a precision instrument, it will matter.
Even cheaper is a 4' length of 14ga house wire (THHN). This is 10 milliohms
(0.01 ohms), within a couple of percent. If you wrap the wire in a coil,
you'll get a little bit of added inductance to smooth out your PWM control
at the same time. Put it in the ground return from the H-bridge, and you'll
get a nice 0.2 volt signal referenced to ground at 20 amps, which is big
enough to measure easily without unduly affecting the performance of the
"I prefer heaven for climate, hell for company."
Actually probably better there are no loops in the lead wires to your
motor. It's best to minimize those. And with this "Allegra" it can help
your robot overcome its allergies in addition to sensing current! <g>
If all you're needing is to do a correlative test and are not looking
for current sensing during run time, you can always operate the motor at
a lower voltage and do your tests with more reasonably sized resistors.
You can then factor the actual operating current at whatever voltage
you'll be using.
Not to disagree will Gordon at all, but I wanted to add that there are
sensors that work similar to Hall Effect devices but are more sensitive. I
use to work for a company as an applications engineer and since I was the
only one who knew anything about electronics, I ended up in charge of all
tech. support calls and design related to our piston position sensors. There
is a type of device known as "magnetoresistive" and a newer device known as
"giant magnetoresistive." These devices can respond to magnetic fields much
lower that Hall Effect sensors, typically about 30 gauss over a distance of
about 1/2 inch or less. Google "magnetoresistive" if you are interested.
Jim, Thanks for the note.
Could these be implemented for current sensing, without being influenced
too much by nearby fields (motors, metal frame, etc)? Would the Philips
KMZ51, used in some electronic compass products, be of this ilk?
You're welcome, Gordon.
I've had no experience in using magnetoresistive devices as current sensors.
However, since these devices are more sensitive to magnetic fields, then
they would, of course, be more sensitive to magnetic fields produced by
motors and other devices. Like all magnetic sensors, they can also be
influenced by nearby magnetic conductive metals. In our case, the advantage
of magnetoresistive devices and associated circuitry is that they can
triggered by smaller magnets, an important consideration in the design of
pneumatic and hydraulic cylinders to avoid a piston magnet ring too thick
with a longer trigger zone and a longer cylinder per stroke travel. For the
subject of this thread, I suspect that a Hall Effect device would be better,
but a magnetoresistive device might be useful in some applications.
Experimentation would, of course, be required.
I'm not familiar with the KZ51, but I did find info at:
Hope you and others find this useful,
Not quite. A permanent magnet DC motor acts as a generator when it is
spinning. You can see this by putting your voltmeter across it and
spinning it by hand with no other power applied. When the motor is
running off a constant DC voltage at a constant load, the generator
action opposes the voltage supplied by your power source. The current
flowing is the result of (your power supply voltage - the generated
voltage) divided by the circuit resistance. As you increase the
mechanical load, you slow down the motor. The reduced RPM generates less
opposing voltage and so more current flows through your constant
resistance. The "official" name for this phenomenon is "back EMF".
No, let's not forget that a d.c. motor acts as a generator and when allowed
to spin, will generate a 'back-emf' voltage in series with this. This
voltage (Eb) is proportional to the RPM (Eb= Kb*omega). Incidentally, if Kb
is measured in volts.sec/rad then it can be shown to be equal to the torque
constant Kt if measured in Nm/A (torque is proportional to current).
So the total voltage is I*(Rm+Rsense) +Eb where Rm is the motor internal
resistance. Rm and Rsense should stay pretty constant. You can measure Eb
by measuring the generated voltage vs rpm. You could also measure Rm with
an ohmmeter across the stationary motor if you are careful with flaky
A clamp on amp meter might be one solution. If you have a digital
multimeter and can actually measure a resistance value in one of
the leads going between the battery and the motor, then you might
could use it as the resistor in the E=IR formula. Connect the
multimeter to the two points (no motor power applied) and measure
the resistance at the lowest resistance setting. Then switch the
meter to the lowest voltage setting and read the voltage across
the section of wire. I haven't tried it, but might be worth
looking into prior to adding extra gizmos in the circuit.. A
simple data logger like below might do the data logging.
Thanks everybody for all the illustrative answers. I really learned
something new from all of this.
What I ended up doing was using an allegro acs750 to measure current and a
couple (2) resistors set up as a voltage divider to measure voltage. Get
these two values and sample it using the PIC adc to convert to some readable
Now I'm wondering, how can I estimate how much energy is left on a battery
package? I know it is possible, because my handcam does it. Is is purely a
function of voltage?
Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here.
All logos and trade names are the property of their respective owners.