Loading a super capacitor with arduino

Hello,

I found this tutorial to charge and measure the capacitance of normal capacitors. I tested this with my 1000uF capacitor and everything works fine - I can see the capacitance + time in milli seconds in the Serial monitor.

Now I wanted to do the same with two 100 F / 2.7 V super caps. I placed both caps in series to be able to run 5V through them (in this case my max. capacitance should be around 50 F).

What do I have to change to be able to charge my two super caps at 5V? When I plug them in, the Serial monitor is showing nothing - I think because the capacitance is way to high to be powered by just 20 mA (Arduino Pin), right?

What do I have to change to be able to charge and monitor the capacitance?

Right now my arduino is powered through USB connection (on my computer), but I have a 5V/40A power supply, voltage regulators and mosfets ready to use. I think I have to use my external power supply as well as a mosfet but since I am a newbie I am not sure how to do that. Any help is appreciated. Thanks!

Have you tried dividing R by the same ratio you have increased C ?

Ratio from 1mF to 50 F means 50 000, so how am I suppose to change the resistor then from 10k ohm to 0 kohm? I did not try this because I fear a electrical short. But isnt 20mA from the arduino pin a little bit too low? I have no problem using an external 5V supply.

I just tried a 1k ohm resistor, still nothing on the serial monitor.

I just tried a 1k ohm resistor, still nothing on the serial monitor.

Calculate the expected time constant. Charging the capacitor completely will require many multiples of that time.

Let t = 100 seconds
Let R = 2 ohms
Let C = 50 F

(60 seconds\50 F = 1.2 ohms)

t = R*C = 2 * 50 = 100 S

So if you charge it through a 1k ohm resistor, it would have a time-constant of 50,000 seconds. If you just tried to test it like that, the caps wouldn't be nearly charged in a length of time that you're likely to have waited.

Charge it from 5v pin of an Arduino, or (much better) an external supply, with a much lower value of resistor - maybe 2 ohms (like raschemmel suggested) for a 100 second time constant when charging?

You can't hand-wave the charging of the super cap like you can normal "filter" sized capacitors :stuck_out_tongue:

I changed the 1kohm resistor to 2 ohm and charging takes still a long time, however I can measure (with multimeter) that voltage increases for example from 0.40V to 0.41V in 5seconds.

Don't forget that Arduino output pins can safely supply only about 20 mA of current. More and you will burn it out, eventually.

...so how am I suppose to change the resistor then from 10k ohm to 0 kohm? I did not try this because I fear a electrical short. But isnt 20mA from the arduino pin a little bit too low?

Right! You do not want a short. The absolute maximum rating for an Arduino output pin is 40mA, and from Ohm's Law, 5V /0.04A = 125 Ohms. That's the MINIMUM resistance you should use. 2 Ohms is essentially a short on the Arduino's output... You'll draw excess (unspecified) current and the output voltage will drop. Your Arduino will overheat and can potentially be damaged, and your capacitance measurements will be useless. (After the capacitor is charged the current will drop to zero.)

1K will probably work but you might need to give it more time.

Now I wanted to do the same with two 100 F / 2.7 V super caps. I placed both caps in series to be able to run 5V through them (in this case my max. capacitance should be around 50 F).

There's nothing wrong with your theory... But in the real world, the capacitances won't be equal and the leakage resistance won't be equal. That means the voltage will not divide equally and you may end-up with most of the voltage across one capacitor. You can check that by applying 5V (assuming you have a multimeter).

You can equalize the voltage by putting equal-value resistors across the capacitors (to make a voltage divider). 10M or 1M resistors will probably work depending on the leakage resistance of the capacitors. The resistors will tend to discharge the capacitors and in some applications that might be an issue. (In the real world, you almost never see capacitors in series.)

How would you guys charge the two 100F 2.7V caps at 5V in a fast way? Lets say I want to use my 5v/40a power supply. Just charge it with a 1k resistor?

If you charge them with a 1k resistor, you've already calculated that it takes 50,000 seconds to charge to 63% or just under 14 hours. Hardly fast. It takes about 5 times that to charge to within a percent or two of the charging voltage.

Are you attempting to measure capacitance, or just charge them?

If just charge them, I'd find out the maximum safe charge current, then use a power supply with current limiting. Set the current limit to no more than 80% of the maximum safe charge current, and the voltage to 5V. No resistor necessary. It should then charge at a constant rate to 5V.

So say 50F with 2A of charge current. 1F with 1A applied rises 1V per second.

So 50F slows that by a factor of 50, 2A speeds it by 2, and charging to 5V slows it by 5. Therefore 50x5/2 = 125 seconds.

You can use this method to measure high capacitance this way, using a constant current source and measure how long it takes to change the voltage by 1V.

Just don't power this from the Arduino's 5V line.

Thanks, I see. My problem is I will have to look for a constant current source as my 5v/40 power supply probably will supply too much current to the capacitors.

I was just looking for a way to 1. be able to monitor the charge state of the capacitors and 2. charge them at the same time.

The charge state is measured by measuring the voltage.

Put a resistor in series with the cap to limit the current flow into them.

And instead of powering parts directly, use a boost circuit to suck all the juice out of the cap to make 5V.

LTC3525fb voltage_boost.pdf (541 KB)

With that much capacitance (100F?), you should use an external supply.

And then hook the 5V regulated line to an Arduino input pin so it can detect when the input power goes away and it's running on the stored power.