Professional Documents
Culture Documents
++++++++++++++++++
Restore Battery
+-+-+-+-+-+-+-+-+-+-+-+-+
Do you have rechargeable batteries that aren't chargeable anymore? There
are many possible reasons why a battery stops taking a charge, here are a
couple of common ones. It may have been damaged by heat due to
overcharging, or sulfates may have built up on the internal plates due to
extreme discharge. The good news is that many times a battery in this
condition can be restored. You may be familiar with desulfating circuits, the
setup I'm presenting in this article is my take on one.
The way this circuit functions is a square wave pulse generated by the
Arduino is amplified with a MOSFET to switch an inductor (L1) on and off
rapidly. Each time the power to the inductor (L1) is switched off the
magnetic field surrounding the coil collapses which generates a high
voltage spike. We direct this spike into the charge battery through D1 which
allows current to flow in only one direction. D2 is a safety precaution to help
protect the MOSFET from being damaged by the high voltage spikes. D3 is
a blocking diode to keep supply voltage from coupling with the Arduino's
supply. R1 is a pull down resistor to keep the MOSFET off until it receives a
positive pulse on the gate.
This is my first Arduino project and I'm hooked. This is a simple setup, I'm
currently powering the Arduino UNO via USB but would incorporate a
stand-alone programmed micro controller into a more permanent setup and
power it from the input supply. I only used 2 pins, Pin 3 to MOSFET gate, &
GND to charge circuit ground through D3 blocking diode.
I used this simple sketch to create a square wave pulse on pin 3 with a
pulse-width & frequency that I can adjust using the delay functions. If both
delay values are equal the duty cycle is 50%. I have it set at a 10:1 ratio
with 10 being the Off time, & 1 the On time, this seems to be a good
balance between charge rate and inductor loading. The longer the pulse-
width, or the higher the frequency the more current used which will
generate waste heat in the inductor and the MOSFET so be mindful of this
when altering the values.
The delay values are in milliseconds.
int fetPin = 3;
void setup() {
pinMode(fetPin, OUTPUT);
}
void loop() {
digitalWrite(fetPin, HIGH);
delay(1);
digitalWrite(fetPin, LOW);
delay(10);
}
Step 3. Conclusion
The amount of time necessary to restore and fully charge a battery will vary
and since at this time I haven't incorporated automated control functions
into the sketch you will need to manually monitor the charge voltage and
use care not to overcharge.
I intend to keep developing this setup and incorporate more of the features
and functions made possible with micro controllers and awesome
development tools like Arduino.