Go Down

Topic: Multiple voltages monitoring dasiy chain over i2c. (Read 874 times) previous topic - next topic

josephchrzempiec

Hello long story short is i have multiple battery packs they are up to 4.2v about 14 of them for a 48v setup. I need to monitor each pack on voltage. It is for a small solar setup. Here is my problem over time I will be adding more packs and I just can't keep using other analog lines to monitor because there are not many. So is there away I can use something for i2c to monitor. And later able to daisy chain more packs to it? What I can have some kind of i2c chip on each pack and daisy chain them together?

MorganS

Yes, there are chips available to do what you want. One I came across recently is the MAX17043. That says it's a host-side device, you may want to explore Maxim's catalog for pack-side devices too.

Basically you can have each monitoring chip powered by its single cell. Then use optocouplers on the I2C lines to isolate the voltage, so the master Arduino can talk to each chip without exceeding its voltage limits.
"The problem is in the code you didn't post."

josephchrzempiec

Hello MorganS Thank you. I never thought about using a optocoupler Before.Actually that might be the best thing to do. Is there one for High current  isolating because these battery packs can go anywhere from 40 amps up to 100 amps Because there are 80 In parallel? But the voltages always remains the same 3.7v fully charged up to 4.2v?

justjohn

#3
Dec 15, 2017, 03:13 pm Last Edit: Dec 15, 2017, 03:37 pm by justjohn
Hello long story short is i have multiple battery packs they are up to 4.2v about 14 of them for a 48v setup. I need to monitor each pack on voltage. It is for a small solar setup. Here is my problem over time I will be adding more packs and I just can't keep using other analog lines to monitor because there are not many. So is there away I can use something for i2c to monitor. And later able to daisy chain more packs to it? What I can have some kind of i2c chip on each pack and daisy chain them together?
Using i2c, the addressing, seems to me would be an issue. I'm wondering if you may need something like this (either the breakout, or "roll you own" with just the chip that's on it) which will read up to 64 of the same i2c address. You could then have nearly anything such as an i2c a/d, inexpensive micro (just one ADC each needed), or really anything with i2c to get the voltage from each individual battery pack.

EDIT:
As far as powering each chip which is monitoring each cell, if an MCU was used, you could simply set to "brownout" at a specific level (below minimum pack voltage) and if you can't address it on the bus, that cell would obviously be too low. Otherwise you could read the voltages. I suppose the only problem with all of this, may be an issue with sending an i2c voltage to a pin of device that's powered down (voltage below typical 3.3 i2c voltage).

septillion

Th current of the pack has nothing to do with the optos. They are in the I2C line to isolate them. And (at least the easiest way) you use a resistor to current limit he opto depending on the voltage. And because of Ohm's law, that's all that matters.

Compare it to your house. You have fuses of 16A (or 10A or 25A) but you can plug in a 5W (21mA) nightlight without a problem. It will just draw 5W (and 21mA will flow) no matter if there is 1A, 10A, 16A, 25A etc "available".
Use fricking code tags!!!!
I want x => I would like x, I need help => I would like help, Need fast => Go and pay someone to do the job...

NEW Library to make fading leds a piece of cake
https://github.com/septillion-git/FadeLed

MorganS

Depending on the technology chosen for the cell-side chips, you would have to select an appropriate current-sensing resistor so that the chip can measure the current going into or out of the cell. To make it easy, I would use multiple identical chips with one resistor each.

However, since you have cells in series, the current through the whole pack would equal the current through each cell, so you could get away with measuring current at one point and independent voltage measurements on each cell.

Do you also want to perform cell balancing? Then each cell-side chip needs to be able to route current around a fully-charged cell so that the undercharged cells may continue charging. That's starting to get a bit complex but I'm sure there are commercial solutions available to buy.
"The problem is in the code you didn't post."

josephchrzempiec

#6
Dec 16, 2017, 02:01 pm Last Edit: Dec 16, 2017, 02:04 pm by josephchrzempiec
Hello Morgan The max 17043 is the chip I'm looking into it seems that This is what I'm looking for. As for the current monitoring What i have decided to do is Monitoring all the packs that are in series. I found this on eBay and this might do the trick it also have wireless NRF24L01 on it which i been playing around with it for awhile. So i should be able to adapt it to my setup Click here for eBay.

MorganS

That looks like a useful device. Other chips in the MAXIM family can do that too, but a pre-built module is always preferable to designing it yourself.
"The problem is in the code you didn't post."

josephchrzempiec

Morgan no i want to use it for a Arduino not the Display it's self. So i can have Ethernet use and display it online and be able to watch it while i'm away from home.

josephchrzempiec

Hello here is a update to what I'm trying to monitor. I found a little module using the max17043 Fuel gauge from sparkfun. And it works kinda. Fuel gauge can be found here. But from what I'm reading only i can use one at a time from reading some site online because it has a fix i2c address and i was wondering Is it possible that i can put two of these modules on it?  Or is it some way to make it work?

Wawa

Note that most of these fuel gauges are for single cells.
I2C can't just be stacked (cells in series).
An 48volt stack requires a special (rare/expensive) chip.
You might want to look into a more DIY-friendly "flying capacitor" solution.
Leo..

josephchrzempiec

Hello wawa is there a way I can monitor different voltages without having to string multiple wires up? Because analog pins are not many and sense the fuel gauge was i2c I thought I can put multiple of these modules in a row. Is there another way I can achieve the same result?

josephchrzempiec

I found something. That might do the trick. It uses a ima219 current and voltage monitoring. It can support up to 4 of these chips. But looking to see if can support more then four.

Wawa

Problem with multiple single cell voltage monitors is that you can't use common ground (needed for I2C).
That would short the lower cells.

The INA219/226 is limited to 26/36volt, so you can't measure 48volt with that chip.
An INA169/196 can do 60/80volt, but it's analogue out, not I2C.

Those chips are just single point voltmeters. Seems you want to measure individual cell voltage (two points).
That means a whole lot of those chips for a stack, and some uneven current draw from the cells.

Current measurement is not a problem.
You just can measure that at one point, because it's the same everywhere in the stack.

Did you Google something like "Arduino battery cell stack voltmeter site:arduino.cc" or "Arduino flying capacitor".
Leo..

Grumpy_Mike

#14
Dec 21, 2017, 06:58 pm Last Edit: Dec 21, 2017, 06:58 pm by Grumpy_Mike
Then use optocouplers on the I2C lines to isolate the voltage, so the master Arduino can talk to each chip without exceeding its voltage limits.
That is not so straight forward as the I2C lines are bidirectional and an opto isolator is not.

This is the flying capacitor technique.

Go Up