Measuring voltage differences between two points

I’m using an Arduino Nano to control a MOSFET that turns on a large relay/contactor for the purpose of pre-charging some large 350F supercapacitors. When the relay is off power flows from a 12V source (1200W PC power supply) to the supercaps through a 50W 5-ohm panel resistor.

Without the resistor the supercaps will pull too much current and the power supply shuts off (in addition to the UPS it’s connected to freaking out!).

When the relay is powered it creates a parallel path to the pre-charge resistor with no resistance allowing full power to the supercaps. Once the supercaps are 80-90% charged no pre-charge resistor is needed as the amount of current they draw is naturally decreased by that point and the power supply can keep up.

I’m using two MOSFETs designed for supercap balancing. There are 5 x 2.7V supercaps in total which would allow for up to 13.5V but I’m charging to 12V. These MOSFETs keep those 5 supercaps at the same voltage but it happens kind of slowly.

Here’s the issue. I need to monitor the voltage so I know when to turn the relay on and bypass the pre-charge resistor. The first time I charge SC5 (the 5th supercap) will go up to about 500 (analogRead) which should be about 2.5V and then it’s starting to slowly drop. I’m not sure if the MOSFETs aren’t balancing correctly or if I’m measuring the voltage wrong. After a few hours it’ll drop to about 380 (1.85V??).

I think it’s most important that I just monitor the voltage of the entire stack. That’s what I thought SC1 would measure but it’s value goes up to around 1017-1023 pretty quickly while SC5 keeps changing.

I’m starting to ramble at this point and I’m getting a bit confused as to how to measure voltage here and at which points I should do it. Thoughts?

I think you are missing an important component. That is a 1% resistor across each capacitor so the voltage across each is identical. They way you are charging, the voltage across each cap is different.

Paul

Can you explain further? Does having them wired in series not automatically charge them all close to the same? I figured the ALD810025 IC I have would also keep them balanced.

Would a small 1/8W resistor be enough?

Here's the datasheet on the IC. http://www.aldinc.com/pdf/ALD810025.pdf

overthrowrobotics: Can you explain further? Does having them wired in series not automatically charge them all close to the same? I figured the ALD810025 IC I have would also keep them balanced.

Would a small 1/8W resistor be enough?

Here's the datasheet on the IC. http://www.aldinc.com/pdf/ALD810025.pdf

Yes, the total electron charge is the same, but the voltage across the individual capacitor will be different. The resistors try to even that out. The internal resistance of each capacitor is different.

Your first post seems to ask about monitoring the voltage across each cap. It will always be different.

Paul

ALD810025 and ALD910025 are supposed to be keeping the voltage between caps exactly the same. I think it’s just discharging the difference as heat. They don’t make one that handles 5 caps so I have 3 on one and 2 on another.

The main question is on measuring voltage. So I have a voltage divider R1 = 1k, R2=620 which should take 1V and drop it to 0.383V.

My input voltage is 12.2V. That means after the voltage divider it should be dropped to 4.669 which I would expect to show as (4.669/5) * 1024 = 956 but it’s showing 1017. SC5 doesn’t have a voltage divider since it’s voltage shouldn’t go over 2.5V. It’s reading went as high as 500 when charging but is now down to 380.

I’m confused as to why that value would drop as charging continued. Maybe the ICs were balancing and that cap charged more than the others?

overthrowrobotics: ALD810025 and ALD910025 are supposed to be keeping the voltage between caps exactly the same. I think it's just discharging the difference as heat. They don't make one that handles 5 caps so I have 3 on one and 2 on another.

The main question is on measuring voltage. So I have a voltage divider R1 = 1k, R2=620 which should take 1V and drop it to 0.383V.

My input voltage is 12.2V. That means after the voltage divider it should be dropped to 4.669 which I would expect to show as (4.669/5) * 1024 = 956 but it's showing 1017. SC5 doesn't have a voltage divider since it's voltage shouldn't go over 2.5V. It's reading went as high as 500 when charging but is now down to 380.

I'm confused as to why that value would drop as charging continued. Maybe the ICs were balancing and that cap charged more than the others?

You are correct. They take the place of balancing resistors. BUT!

Did you read :• Scalable to larger supercap stacks and arrays.

You can stack the devices to fit the number of super caps in your string.

You should be good to go.

What does you DVM show for voltages?

IF I read the spec correctly, the charging current must be 80 ma or less. Is this what you are seeing?

Paul

Confused. You are trying to charge a supercap bank with a 12volt/100Amp supply, and you're balancing the caps with a 0.1mA@2.74volt chip? Leo..

Paul_KD7HB: You are correct. They take the place of balancing resistors. BUT!

Did you read :• Scalable to larger supercap stacks and arrays.

You can stack the devices to fit the number of super caps in your string.

You should be good to go.

What does you DVM show for voltages?

IF I read the spec correctly, the charging current must be 80 ma or less. Is this what you are seeing?

Paul

I don't have an easy way to measure voltage on each CAP. I think next pcb I'm going to put test points (VIAs). I'm not sure what I'm charging at but it has to be in the tens of amps, definitely not mA.

Wawa: Confused. You are trying to charge a supercap bank with a 12volt/100Amp supply, and you're ballancing the caps with a 0.1mA@2.74volt chip? Leo..

I think that be the issue. Maybe I'm seeing changes in the values over time because it takes a long time to balance out those differences. Once I get some cycles on them I'll have to see if that matters. I think it also means that I shouldn't be worried during initial charging of individual caps as much as the total bank.

The big thing is to know the best time to flip on the relay and have full 100A available to the motor controllers and the caps.

There are lots of supercap mounting boards on ebay with bigger parts for bigger balancing currents.

http://www.ebay.com/cln/nebdbgrizz/super-cap/354770226010

Leo..

I've got a lot of custom connectors, diodes, nano, etc on my board so I can't use one of those ebay ones. It looks like one of those boards has current sense resistors and FETs but it's not clear. Maybe I can find a schematic somewhere.

Just curious. What led you to use chips designed for < 80 ma charging current to use them at 100 amps?

Paul

overthrowrobotics: Maybe I can find a schematic somewhere.

10 seconds with Google.

http://www.discovercircuits.com/DJ-Circuits/supcapvoltlim.htm

There must be hundreds more. leo..

Paul_KD7HB:
Just curious. What led you to use chips designed for < 80 ma charging current to use them at 100 amps?

Paul

They said they supported up to 3000F so I figured I was ok plus it doesn’t limit charging to 80mA, just the amount they can dissipate which I would assume is only the difference between caps which I thought would be small.

Even if the difference between supercaps is small... say a mere 1%, so they would need 1% of current siphoned off to balance... 1% of 100A is 1A... 12 times greater than what your chips can handle, and that 1% is probably too small of a "small".

Methinks you should look at balancers that can handle currents to the the tune of 10A. That would allow them to correct some 10% difference.

Not sure what OP is trying to do, but I think you can never close that relay contact. A constant voltage supply and a supercap will always fight each other. Leo..

Wawa:
Not sure what OP is trying to do, but I think you can never close that relay contact.
A constant voltage supply and a supercap will always fight each other.
Leo…

The relay is working. I’m reading the analog voltage on A3 and if it’s less than a certain value I set D7 LOW, otherwise I set it HIGH. When it’s high the MOSFET is connecting the GND and the relay gets 12V. The relay then bypasses the 5ohm panel resistor.

After letting it sit another day I keep seeing the voltage on SC5 (cap closest to GND) get lower even though SC1 (entire stack) went from 1017 to 1023. I think that analogRead must not be too accurate. I’m guessing it’s using 5V power as reference?

overthrowrobotics:
I’m guessing it’s using 5V power as reference?

Correct - and for added stability you can switch to the internal 1.1V reference (note: you’ll have to calibrate this for the actual voltage that you see). You will have to change your voltage divider as you have to bring down the signal to <1.1V.

What do you think of using one of these methods? Transistor or optoisolator? http://playground.arduino.cc/uploads/Learning/Level_shifting_4_arduino.pdf

Thanks for all the help so far. I appreciate you guys jumping in and helping a new member. This is part of a larger project I've been working on for years. It's a pair of human sized boxing robots meant for arcades. So there are Arduinos, Teensys, Raspberry PIs, PC, Kinect camera, motor controllers, pressure sensors, accelerometers, etc in it. If anyone is interested there's a few videos of the progress on our Facebook page. https://www.facebook.com/pg/OverthrowRobotics/videos/ and https://www.youtube.com/user/punchingpro/