Arduino Power Battery-Operated – Arduino Battery Over-Discharge Protection (O-DP)

arduinobattery-operatedpower

I am getting an Arduino Uno soon, and am planning to run off a 8-cell NiMH battery pack (through the power jack). Assuming a .9V cut-off per cell, that'll mean a 7.2 cut-off voltage. How would I wire it to detect the <7.2V voltage and turn off?

Would this Schematic work?

#pseudo-code
if A0 < 3.65v then BUZZ
#buzz makes a square wave w/ PWM to PWM0

Manual turn-off, alerts user(s).

Best Answer

Your solution will work in principle.

The following will work for any generic uC (microcontroller).
You could automate it by providing a high side switch (MOSFET or bipolar) that was turned on with a momentary action push button, held on by the uC, and turned off by the uC when desired. There is then no prospect of hunting or hysteresis as the battery voltage rises when deloaded as when it's off it stays off until the user turns it on.

Size R2 to suit output current.
MOSFETS can be used for Q1 or Q2 with minor changes.
Switch Go! has to be held low until the uC takes over hold-on control.
Adding a capacitor across SW1 will allow circuit to remain on for a small period until the Arduino takes over.

schematic

simulate this circuit – Schematic created using CircuitLab

For extra points have a warning buzzer at a slightly higher voltage so you get a chance to take action before auto shutoff (hat tip to 46464).


The divider resistors should be as high as the ADC spec allows to minimise wasted current (only about 0.5 mA here but it all helps).

0.9V is well down the NimH discharge curve - especially if current is <= C/5, as is usually the case in this sort of application. I'd use closer to 1.0V/cell. Higher cutoff voltages will give substantially better cell cycle life with only a small decrease in available battery capacity.