Trouble mesuring current of RC BLDC motor with ACS758

Hello every one, :slight_smile:

I currently trying a build an thrust test bench for RC motor and i getting trouble with the current mesurement.

I use for that purpose an Hall effect sensor ACS758LCB-050B already package like this
https://www.banggood.com/CJMCU-758-ACS758LCB-050B-PFF-T-Linear-Current-Sensor-Hall-Current-Module-For-Arduino-p-1105517.html?rmmds=search&cur_warehouse=CN

My test setup is :

  • 3/4 cells 30 Amps BLDC Motor
  • 40 Amps ESC
  • 2200 amps/h 30C 11.1V Batterie
  • 10x8 prop

Every thing work fine and i got descent thrust

I followed the Henry's bench tutorial and use his code
http://henrysbench.capnfatz.com/henrys-bench/arduino-current-measurements/acs758-arduino-current-sensor-tutorial/

The sensor is put in series between the batterie and ESC.
The problem is that the sensor give me very inconsistent result.
For exemple at 1/3 throttle i got (the forth last read are at 0 throttle)

Raw Value = 541	 mV = 2644.184	 Amps = 3.605
Raw Value = 509	 mV = 2487.781	 Amps = -0.305
Raw Value = 603	 mV = 2947.214	 Amps = 11.180
Raw Value = 510	 mV = 2492.669	 Amps = -0.183
Raw Value = 587	 mV = 2869.013	 Amps = 9.225
Raw Value = 502	 mV = 2453.568	 Amps = -1.161
Raw Value = 567	 mV = 2771.261	 Amps = 6.782
Raw Value = 503	 mV = 2458.456	 Amps = -1.039
Raw Value = 524	 mV = 2561.095	 Amps = 1.527
Raw Value = 537	 mV = 2624.633	 Amps = 3.116
Raw Value = 508	 mV = 2482.894	 Amps = -0.428
Raw Value = 604	 mV = 2952.102	 Amps = 11.303
Raw Value = 510	 mV = 2492.669	 Amps = -0.183
Raw Value = 542	 mV = 2649.071	 Amps = 3.727
Raw Value = 506	 mV = 2473.118	 Amps = -0.672
Raw Value = 585	 mV = 2859.238	 Amps = 8.981
Raw Value = 502	 mV = 2453.568	 Amps = -1.161
Raw Value = 542	 mV = 2649.071	 Amps = 3.727
Raw Value = 509	 mV = 2487.781	 Amps = -0.305
Raw Value = 510	 mV = 2492.669	 Amps = -0.183
Raw Value = 508	 mV = 2482.894	 Amps = -0.428
Raw Value = 510	 mV = 2492.669	 Amps = -0.183

The motor run like a charm.
It's almost look like to me like AC current. I check with a bad ampmeter (limited to 5Aamp), he gave me around 4amps consistent.
Should I make an average of the reading ? Does it make sense with such variation ?

I tried to plug a basic DC motor with the same batterie (and of course without ESC) and this time the result were consistent and matching my ampmeter.

Raw Value = 517	 mV = 2526.882	 Amps = 0.672
Raw Value = 517	 mV = 2526.882	 Amps = 0.672
Raw Value = 516	 mV = 2521.994	 Amps = 0.550
Raw Value = 517	 mV = 2526.882	 Amps = 0.672
Raw Value = 515	 mV = 2517.106	 Amps = 0.428
Raw Value = 515	 mV = 2517.106	 Amps = 0.428
Raw Value = 515	 mV = 2517.106	 Amps = 0.428
Raw Value = 516	 mV = 2521.994	 Amps = 0.550
Raw Value = 511	 mV = 2497.556	 Amps = -0.061
Raw Value = 510	 mV = 2492.669	 Amps = -0.183

Have you an idea of the cause of this inconsistency from the sensor?

Thanks for your help and time :slight_smile:

Ludovic

Looks like the result of PWM - constantly switching on and off the motor. It seems to jump between 0 and 9A. Intermediate values if taken during a rising or falling edge.

I guess the negative values are an artefact of the sensor, which is unable to follow the very fast changes and overshoots.

Connect it to a scope to see the waveform, should be interesting.

LudoFaf:
Have you an idea of the cause of this inconsistency from the sensor?

The problem is your expectation that an ESC pulls a steady current from the battery, which is definitely
does not, its switching constantly, power conversion circuits are all switch-mode these days. The sensor
is doing just fine and showing you reality.

You want to measure average current, which means you must low-pass filter the output of the ACS758,
perhaps to a bandiwidth of 10Hz or less, so that all the switching is invisible to you.

I final get back on this project,
Thank for your reply, it's work well.
I went with a 0.1microF capacitor, 200kohm for a 8Hz bandwidth.