Current Sensing Question

Hello,

I'm using a ACS723 (similar to ACS712) exactly as recommended by the datasheet (see attachment for schematic) to measure the current load of a Brushless Motor. The sensor reads accurately when I connect it to a Multimeter between the load and the sensor. But once I disconnect the multimeter, the sensor does not read accurately. We are talking like ~50-75% less accurate. Any help will be appreciated.

Also, the Sensor is far away from the motor; to avoid interference. Any suggestions of what can cause this offset/bad reading? I'm not getting noise.

I see it not

you should post links to anty components you are using - like this

The sensor does not "read" on its own - you need to connect something to the Vout & Ground.

Are you using an arduino? which one? HINT - provide a LINK

how are you measuring the voltage? HINT - show your sketch

The current taken by a brushless motor may be very variable (a series of pulses), so this may be accurate even though you think its not. The Multimeter will be adding resistance into the circuit, changing the behaviour.

But first please post your circuit as this matters. Perhaps you've not connected the bandwidth select pin, perhaps you've neglected decoupling or the output filter capacitor is too small - all such issues are immediately apparent if you post your circuit - hand-drawn is fine.

Thanks for your reply.

To start, here is the Schematic with some test results: Schematic

Let me explain how I'm measuring the current:

I have the Sensor connected between the power source and the ESC (+ / - of the battery and esc). The "inaccuracy" I'm observing is only when I test brushless motors. I tested shut resistor(s) and bulb to check the amount of load and I got accurate readings.

Now, I included a plot with two current readings (accurate and inaccurate).

Accurate Reading : I took (1) voltmeter wire and connected to the sensor and I was able to get accurate readings!

Inaccurate Reading: I replace the voltmeter wire with a 12AWG (same as all my other wires) and I observed inaccurate readings.

Resistance of the Wires:
Voltmeter Wire : 257mOhms
12AWD Wire: 3.5mOms

Any help? I spend two days trying to figure this out and still can't find it.

It would be so much easier if you posted your schematic in a post (instead of in a PDF) like below :wink:

And the rest of the PDF

The wire resistance is different, these are different circuits, and the ESC may well be doing different things because of the change in PSU impedance it sees.

0.257 ohms is unacceptably high resistance in an RC motor setup, these motors pull dozens of amps. I suspect you are seeing the unintended consequence of the ESC having to handle its supply voltage droop many volts during the high current pulses, and adapting its behaviour in response.

You are also sampling a waveform with the ADC at a particular rate - unless that rate is more than twice the highest frequency in the waveform, the results are potentially bogus as you miss details.

When measuring a current signal that's got high frequency components like the pulse train going to an ESC you need to be careful about sampling artifacts like this - different measuring equipment will respond differently if its not able to handle the bandwidth.

MarkT thanks for your response. That behavior (wave form in the current) is due to the mechanical load I'm applying to the motor. Right now the BLDC Motor is coupled to a flywheel (variable load); and that is the reason why it doesn't look like a negative slope.

My sampling is very small (10hz); Let me ask this: What is the best method/equipment to measure current between the power supply and ESC without interfering with the current sensor? All I want to do is confirm that my sensor is reading accurately.

I learned that I can't apply a constant load to the current sensor to confirm it's accuracy because when dealing with ESC loads, that is never constant.

I sampling at 10 samples/s you'll need an anti aliasing low-pass filter before sampling with a bandwidth below 5Hz - for instance most multimeters do this implicitly as they use integrating ADCs.

Why 5 Hz?

Because that is the maximum plausible update rate for a numeric display and it is a common factor of both 50 and 60 Hz.

Nyquist sampling theorem (ie maths) - if sampling at a rate of f, you will get frequency-aliasing unless the input is filtered to remove everything at or above f/2.

It might be better to sample much more often that 0.1s if you want more information.

Nyquist is why common sampling frequencies for quality audio are 44.1kHz or 48kHz, as the human hearing range has a maximum of about 20kHz.