# Feasibility of measuring large DC current with Arduino

Hello all,
Not sure if this is the right place for this, but here goes: I wish to be able to reasonably accurately measure large DC current (maybe 80 amps tops) relatively continuously on my arduino. I am considering this linear Hall-effect sensor.

My concern is that those leads from the terminals to the actual sensor chip, and even the lead-blocks themselves look mighty small for 80 amps, much less the 150 amps it is rated for. To safely carry 80 amps, I’d plan to use 4 Ga. copper wire. What am I missing here? I have no doubt it would handle 150 amps for a few seconds, but would it handle 60 - 80 amps for several hours without frying? Is there a better way, perhaps? Using a separate shunt seems more logical, but it looks like a PITA to set it up properly. I was hoping for more of a turn-key solution…

Gary

Don't like the looks of that myself, might be OK short term but I wouldn't trust it for hours. I would go with a standard 75mV shunt of whatever power rating required. What voltage and where in the circuit will the shunt be located?

@Outsider, I have some 100 amp 75mV shunts on hand; the voltages would either be around 13 volts or 26 volts, depending on the application. The shunt would be located within a few feet of the batteries.

The problem is that connecting the shunt leads to the arduino GND and an analog pin, even using a reference of 2.56 volts (The minimum I can use, since there are other 2 volt analog sensors involved) only gives me a resolution of about 3.33 amps per analog graduation, if I have figured it correctly. 100/(.075/(2.56/1024))

I'd like to have 1/10 amp resolution if at all possible.

Edit....The system already has a 100 amp 75mV shunt installed to run a local meter, so tapping into that would be easy if I had a way of bumping that 75mV up to 2.5 volts.

The reason I asked about location is the shunt needs to be the last thing in the ground lead, right at the Batt neg. terminal if possible and Arduino GND connected to batt neg., but sounds like you already know that. Single supply op amps are cheap and easy to use, would not be too difficult to rig up a 33 to 1 amplifier.
Like this:

I am pretty familiar with high current DC, but am brand new to Arduino programming and all these bitty little electronic thingamabobs, LOL. Give me a piece of 4/0 copper cable and a 10,000 amp/hr battery bank, and I'm good to go, but when you mentioned a single-supply op amp, I thought for a moment you had lapsed into Aramaic. A Google search left me even more confused. Thanks for the tip, but it looks like I have a LOT more to learn. Oh well, if it was simple, anyone could do it.

Give me a little time to breadboard one , I'll post a pic.

outsider: Give me a little time to breadboard one , I'll post a pic.

Thanks a bunch, I also just noticed your drawing, and am studying it now. You've already been most helpful!

Outsider, would that be a MCP6001? It looks like the MCP6002 has two inputs/outputs…

It’s a MP6002 here’s a snapshot: Only thing I left out was a trim pot to compensate for resistor tolerance.
Oh well, I cant get pic to upload, too big I guess, I’ll keep trying.
Finally got a fuzzy pic to upload

Why not get something like one of these http://uk.farnell.com/lem/la-100-p-sp13/current-transducer-100a-pcb/dp/1617427. There are versions available which operate on 5 volts and provide a 0-5 volt output (generally centred at 2.5 volts to permit directional sensitivity)

JohnDeere630: Hello all, Not sure if this is the right place for this, but here goes: I wish to be able to reasonably accurately measure large DC current (maybe 80 amps tops) relatively continuously on my arduino. I am considering this linear Hall-effect sensor.

My concern is that those leads from the terminals to the actual sensor chip, and even the lead-blocks themselves look mighty small for 80 amps, much less the 150 amps it is rated for. To safely carry 80 amps, I'd plan to use 4 Ga. copper wire. What am I missing here? I have no doubt it would handle 150 amps for a few seconds, but would it handle 60 - 80 amps for several hours without frying? Is there a better way, perhaps? Using a separate shunt seems more logical, but it looks like a PITA to set it up properly. I was hoping for more of a turn-key solution....

Gary

Yes, that breakout for the ACS756 (it looks like that device) should use thick copper sheet, not 1 or 2oz PCB. Why not get an ACS756 and connect it more solidly yourself into 4AWG pigtails?

@jackrae, I found this one that has the amp range I need (and then some) here.

The data sheet is mostly incomprehensible to me, but it takes a nominal 5 volt input and I assume puts out an analog voltage in relation to the current flowing through it. I wonder what the conversion would be on an arduino to convert the analog steps to actual amps, and forgive my stupid question, but would I be correct in assuming that the middle (2.5 volts) on the analog pin equate to 0 amps, 0 volts on the analog would equate to -300 amps, and 5 volts on the analog would equal +300 amps?

@Outsider, Thanks! It appears you are only using 5 of the 8 pins on the MCP6002. If you can get a clear pic to upload, that would be great. I like this idea because I could put together a small PCB that would also include a voltage divider circuit for voltage measurement. It would also be handy to tap into the existing shunt, and the best part is that those components are quite inexpensive.

@MarkT I thought about that, and the ACS756 is pretty cheap, but I lack the knowledge to recreate the rest of the circuitry on the board, so I'd resort to hacking an existing board. I still have reservations about the thickness of the traces going into the 756, although I haven't actually seen one. It just seems small for 60 to 80 amps @24 volts continuously.

A sincere thank you to everyone. I now have three avenues of approach....LOL

The copper tabs on the 756 are adequate for the rated current, but it will get warm or hot at full current of course. It says 0.1 milliohm, so 100A gives 1W of heat, but that's easily carried away by thick copper wires!

Far less heat to dispose of than a resistive shunt of course.

A Hall sensor like that only gives you ~450 A/D values. A low resolution of about four A/D values per amp.

A shunt/opamp could double that resolution, but the problem could be the galvanic connection. An INA169 board (Adafruit) could be easier to use.

An INA219 board (Adadruit) plus your shunt (or a section of your the current carrying wire), could double resolution again. And has inbuid voltage measurement. Problem of the INA219 is the voltage limit (26volt). Leo..

The 300A hall transducer can be ranged to 100A by simply looping your power line through the torus 3 times. In effect the sensor then detects the flux produced by 3 x 100A and "thinks" there is 300A flowing.

Or to 75A by looping 4 times

If you set Vref low enough then you get full resolution provided you aren't interested in measuring reverse current flow.

Your original enquiry stated "reasonably accurately" What do you consider that to be. Resolution can never be better than 0.1% and component tolerances probably reduce accuracy to around 1%

jackrae: The 300A hall transducer can be ranged to 100A by simply looping your power line through the torus 3 times. In effect the sensor then detects the flux produced by 3 x 100A and "thinks" there is 300A flowing.

Or to 75A by looping 4 times

If you set Vref low enough then you get full resolution provided you aren't interested in measuring reverse current flow.

Your original enquiry stated "reasonably accurately" What do you consider that to be. Resolution can never be better than 0.1% and component tolerances probably reduce accuracy to around 1%

Right, I have used the multiple loop trick to boost sensitivity of amp-detect on some past projects. Regarding accuracy, obviously, I'd like it to be as accurate as I can without exotic solutions, but 1% is probably as close as I can get. As this is just a monitor function to see how may amps the solar array is putting into the battery bank, +/- 1/2 ~1 amp resolution is good enough.

outsider:
The reason I asked about location is the shunt needs to be the last thing in the ground lead, right at the Batt neg. terminal if possible and Arduino GND connected to batt neg., but sounds like you already know that. Single supply op amps are cheap and easy to use, would not be too difficult to rig up a 33 to 1 amplifier.
Like this:

@Outsider,
The more I think on it, the more I like the approach you mentioned. The circuit looks easy to build, but I have a few questions: I cannot find a part# for a 1/2 MCP6002, has that part # been discontinued? Can I use a 6001 chip instead? The data sheets list the pinouts, and the 6001 has just the five you are using.

When you say a 33:1 ratio, I notice that there are a 33k and a 1k resistor…coincidence? Or is adjusting the ratio really that easy?

Where do the grounds all connect? The arduino GND rail? In other words, are they all referencing the 5 volt supply from the arduino, or the circuit being measured? It would seem that at least one referencing the arduino would be needed for the 2.56 v analog signal…

Sorry to be a pain, but this stuff is interesting. Thanks!

Last, (for now) how do you know the values needed for the caps?

I drew up this diagram, referencing the MCP spec sheet and Outsider’s sketch…!(http://file:///home/gary/Documents/op amp schematic1.png)

If you can actually see this, am I on the right track?

80Amp and an opamp gain of 34 gives ~418 A/D values. Lowering the 1k resistor to e.g. 470ohm could give you twice that resolution.

Are you sure you can safely ground (to USB/computer/mains) the negative wire on the solar cell side?

High-side measurement (shunt in the positive line) could be a safer way. https://www.adafruit.com/product/1164 Leo..

I just noticed this on the MCP data sheet:

Gain = 1+R1/R2

So I guess it really is that easy. Now if I can figure out how Outsider knew the rating for the caps....