How to protect the backup battery

Last week we had a power cut all day, and when power was restored ( for all of 3 minutes ) the sub-station exploded and we were again without power for the night - just another day in Africa !

My home alarm and access control system, running off an Arduino Mega 2560 attached to a PowerMax power supply with a battery backup, ran out of power and died after around 5 hours.

The battery specs are :
Model OT 9-12 ( 9Ah 12 V )
Standby Use 13.6 - 13.8 V
Cyclic Use 14.5 - 14.9 V
Initial Current less than 2.7A

( ps.. any laymans explanation of the above would be really welcome )

Attached to the power supply are :
Arduino Mega 2560
Ethernet Shield
2 electronic strike locks for pedestrian gates
2 x 3 channel remote receivers
intercom system
2 DS18B20 temperature sensors
panic buttons
window and door contacts ( magnetic reed switches )
2 indoor PIRs
16 x 4 LCD display with backlight
Cellular Alert device
Armed Reaction Company radio transmitter
various relays for strobe light, sirens, status LEDs, etc

Once we had power again, I tried restarting the system. It ran for a few minutes and then died. Repeatedly.

I measured the voltage from the PowerMax. 13.8 V ( as expected ) on startup, then down to around 5V when it died.

The now disconnected battery voltage measures 11.07 V

Replacing the battery resolved the problem.

My assumption here, is that the battery was drained down so far, that it was damaged beyond its ability to recharge ?

If this is the case, how do I prevent this from happening again ?

Do I add a voltage divider so the code can watch for a fall in the voltage from the power supply ?

At what voltage should I be taking "drastic action" ?

My thoughts would be to do the following :
as soon as mains power is lost ( not yet sure how to detect this ), disable the non-essential items like :
use of the Ethernet shield
electronic strike locks
remote receivers
intercom system
temperature sensors
LCD display with backlight

Then, as power further reduces as the battery runs down, turn off the system to prevent damage to the battery.

But how can this be done, with the need that the system wakes up / resets when sufficient power is again restored ? Max time that the system could be without power is around 3 days.

Scary as if it had happened 2 weeks earlier, we were 600km away and would have the property exposed without any protection.

The battery specs are :
Model OT 9-12 ( 9Ah 12 V )
Standby Use 13.6 - 13.8 V
Cyclic Use 14.5 - 14.9 V
Initial Current less than 2.7A

( ps.. any laymans explanation of the above would be really welcome )

The 9Ah is a measure of energy, indicating (very roughly) you can draw 9A for 1h, or 4.5A for 2h, or 2.25A for 4h, etc. Though it very much depends upon how old the battery is, the history of how it was charged, temperature, actual current being drawn, etc.

Standby use rating is likely the voltage you will measure (open circuit) with no current being drawn and a fully-charged battery.

Cyclic use looks like the voltage you should charge the battery with (I haven't seen the term before).

Initial current....not entirely sure what they mean by this either but it sounds like a limitation on how much current can be used for charging.

My assumption here, is that the battery was drained down so far, that it was damaged beyond its ability to recharge ?

Good assumption. UPS systems commonly use lead-acid batteries for providing enough power to a system so it can be shut down in an orderly manner, WITHIN A FEW MINUTES! They are not designed to continuously power their loads throughout a power outage. Lead-acid batteries are intended to be kept constantly charged and start to "fail" when depth-of-discharge exceeds 50% (roughly), unless they are "deep cycle batteries" (not likely in a UPS). Basically, the more deeply you discharge it the less often it can be recharged. If you let it get 100% discharged (as it sounds may have happened) it's conceivable the battery is ruined.

You can, however, try to just recharge the battery. It's possible the PowerMax is failing simply because it can't charge a fully-discharged battery while also powering the load, without overheating. Try just plugging the PowerMax in (with the old battery) and nothing else connected to it, giving it a good 12h-24h to recharge the battery to 100%.

If this is the case, how do I prevent this from happening again ?

Exactly what you suggest :wink: Monitor the voltage, then take action. If you notice a power failure, perform an orderly shutdown, then cut power. A voltage divider is good enough for voltage monitoring.

If you really need to be without power for 3 days you need to rethink your battery needs. A battery designed for deeper discharge (deep-discharged lead-acid, NiMH, etc.) is necessary, and likely a customized UPS system.

The Ruggeduino: compatible with Arduino UNO, 24V operation, all I/O's fused and protected

Many Thanks for the reply RC.

How would I ( assuming with code ) go about shutting down the system and making it self-start when power ( and battery charging ) is resumed ?

That's a big question and depends upon how you have wired things together, which devices already have built-in power cutoffs, etc. If a device does not have a power cutoff you will need to construct one, either per device or per groups of devices, using a relay, or MOSFET, etc. These cutoffs would be controlled by the Arduino which is to be left on all the time, though it can go into a lower-power sleep mode and periodically wake up to sample the system state and determine what to do.

It would probably be best to first become familiar with these concepts (measuring battery voltage, determining if power is available, shutting off power to 1 device -- pick one) before tackling the much larger problem.

The QuadRAM shield: add 512 kilobytes of external RAM to your Arduino Mega/Mega2560

Thanks RC

I already have many of the items ( strobe lights, siren, etc ) on individual relays used to activate them, so isolating them would simply be a coding issue. I could also simply add another relay for "non-essential items" and add code to power the relay coil to supply the required power to all those items ( intercom, receivers, sensors, etc ). Then when the power drops, I can simply disable / de-energise that relay to save that power. Would there be any down-side to having a relay coil energised for majority of the time ?

The battery voltage seems to simply need a voltage divider, and from another post I have identified the R1 & R2 values to be 10k & 3K3, giving me a maximum battery voltage of 20V.

So the remaining parts of the project seem to be :

  1. determining if mains power is present
  2. sleep the Arduino and wake up every 30 minutes

Lastly, what would you recommend as the lower voltage limit that I should let the battery get to, before going into sleep mode ?

I agree with RC, except for one thing. The standby rating is given as 13.8 - 13.8v, which is too high for a battery that is not on charge. So my interpretation of that figure is that it is the voltage you should keep the battery charged to if the battery is there to provide power only in the event of a mains failure.

To decide at what voltage you should consider shutting down, Wikipedia Lead–acid battery - Wikipedia gives the voltage of a fully discharged 6-cell lead acid battery under load as 10.5v. But it probably depends on the cell construction.

Don't try removing power to the LCD display, because if you do so while it is still connected to the Arduino then its inputs will course current from the Arduino, perhaps resulting in unpredictable behaviour. Just remove power to the backlight. The rest of the LCD display won't consume much power.