Found an Arduino-compatible Voltage-Current Sensor; it could remove the need for a separate voltage sensor.

Is there a more recommended method to continuously and simultaneously measure the current-draw of each of two DC motors, alongside a battery level/voltage setup or sensor?

  • \$\begingroup\$ Since you have already seem to have chosen this unit ….the question is why do you think it does not meet your requirements (what current and voltages do you need to measure). Asking just what is most popular is just a shopping question and will rapidly get closed. \$\endgroup\$ – Jack Creasey Apr 25 at 14:38
  • \$\begingroup\$ @JackCreasey the current in each motor, and the voltage of the battery powering them. the need to ask is because telemetry involving current is not as common as thought. appreciate the advice on stack-questioning. \$\endgroup\$ – etorobot Apr 25 at 15:22
  • \$\begingroup\$ Use two? The voltage measurement in these modules is simply a divider that scales the voltage down to a range the A-D can handle, the current measurement is done with a now obsolete current sense amplifier pdfserv.maximintegrated.com/en/ds/MAX471-MAX472.pdf \$\endgroup\$ – Phil G Apr 25 at 15:22
  • 1
    \$\begingroup\$ @etorobot By current value I mean 1A....10A....100A?? What voltage range? \$\endgroup\$ – Jack Creasey Apr 25 at 15:31
  • \$\begingroup\$ @PhilG one for the battery V and one motor, the other for the second motor's current alone \$\endgroup\$ – etorobot Apr 25 at 16:05

I'd suggest that the best sensor type for both battery voltage and multiple (3) current splits is an INA3221 based sensor.
The INA3221 does high side current sense and provides an on board A/D for these functions that you read over the I2C bus.

These are readily available as small module boards on your favorite Chinese website, for example here. There are literally dozens of suppliers with a board layout simialr/identical to this:

enter image description here

The majority of the boards are configured for +/-3A full scale on each channel, but this can be altered by changing the sense resistor. I would not however use these boards for more than 5-6A without putting wires in parallel to the PCB tracks.

  • \$\begingroup\$ High side sensing is not really needed here, but the combination of features could be handy. Note that the sense resistor does not have to be on the board at all - if the onboard one is removed, the connections can be run instead using small wires to either side of an external sense resistor appropriately wired into the power run. \$\endgroup\$ – Chris Stratton Apr 25 at 17:30
  • \$\begingroup\$ @ChrisStratton True, high side is not needed, but why wouldn't you given the capability of either the INA219 or the INA3221. The OP could also use a Hall-effect sensor quite easily. Moving the sense resistors off board is more challenging, you have to either make another PCB, or use panel mount resistors ...both methods would make the project more difficult than a single easy to mount PCB. \$\endgroup\$ – Jack Creasey Apr 25 at 18:31
  • \$\begingroup\$ It's pretty easy to put larger resistors directly into a wiring harness, no need for PCB. Then run sense wires back to the available PCB from which the under-rated sense resistor has been removed. \$\endgroup\$ – Chris Stratton Apr 25 at 18:41
  • \$\begingroup\$ @ChrisStratton There is absolutely no need to remove the onboard resitor if you want to measure higher currents. You only need to remove is you want to measure lower currents. \$\endgroup\$ – Jack Creasey Apr 25 at 18:57
  • \$\begingroup\$ If you are only measuring a few times higher current you would have to factor the onboard resistance into the effective parallel combination. Sure, it's just math. But it may mean you no longer have nice round numbers. \$\endgroup\$ – Chris Stratton Apr 25 at 19:26

I would recommend a current sense resistor in series with each motor. All you have to do is measure the voltage across the resistor. The output of the amplifier can be read by your Arduino's ADC. You can use the same circuit below to measure the current of just about any load.


Current sensing circuit

  • \$\begingroup\$ thanks for the suggestion. why are the resistor and amp after the load, as opposed to between the supply and battery? \$\endgroup\$ – etorobot Apr 25 at 16:50
  • \$\begingroup\$ @etorobot The resistor can be before or after, it doesn't matter since they are in series which creates a voltage divider between the load and Rsense. Hope that helps. Most of the commercial sensor boards you'll find out there are doing exactly what the circuit above is doing. \$\endgroup\$ – Rob Apr 25 at 16:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.