Real-time measurement of motors' current draw for a mobile robot

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?

• 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. Apr 25 '19 at 14:38
• @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. Apr 25 '19 at 15:22
• 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 Apr 25 '19 at 15:22
• @etorobot By current value I mean 1A....10A....100A?? What voltage range? Apr 25 '19 at 15:31
• @PhilG one for the battery V and one motor, the other for the second motor's current alone Apr 25 '19 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:

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.

• 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. Apr 25 '19 at 17:30
• @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. Apr 25 '19 at 18:31
• 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. Apr 25 '19 at 18:41
• @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. Apr 25 '19 at 18:57
• 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. Apr 25 '19 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.

$$I=V/R$$

• thanks for the suggestion. why are the resistor and amp after the load, as opposed to between the supply and battery? Apr 25 '19 at 16:50
• @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.
– Rob
Apr 25 '19 at 16:53