When using different types of batteries it can be quite a pain in the neck to be able to find a single tool to recharge them all with, because most chargers only work with one or a few types of batteries. But here is a charger that can do it all, from sealed lead acid batteries to Lithium Ion and Lithium Polymer – the multi-chemistry battery charger.
The device has two channels and can charge two different types of batteries simultaneously up to 2 amps each. One of the channels can also be used as a discharger. The types currently supported are Nicad, NiMH, LiIon (or LiPoly), sealed lead acid and rechargeable alkaline batteries. The charger uses an ATMega32 microcontroller and a 2 x16 LCD display with a 5 key keypad that enables the user to set and view all necessary parameters, which are saved in an EEPROM and charging and discharging values. A fixed voltage, current limited output, a fixed current, voltage limited output and a variable PWM output are also provided as a bonus.
Two separate circuits are used for charging and discharging, respectively. The brain of the charger is the microcontroller working on 16MHz that generates two 10 bit 16 kHz PWM signals. It also manages the LCD and the keypad and executes the algorithms needed. Powering the microcontroller section is done using a 0.5A 5V regulator. The charger automatically detects if a battery is connected and starts charging/discharging according to the parameters entered by the user.
This project is developed as a commercial product, so no code is released by the designer. Still, he is willing to give additional information about charger design and share some of his experiences with various battery types. Also, the charger, discharger and microcontroller schematics are available in the link below.
Universal Battery Charger: [Link]
If you want to impress somebody on Valentine’s day this is a great opportunity, make a DIY led heart, the project comes along with all the source code schematics and even a tutorial to explain the software.
Beside the obvious, lets take a deeper look at the project, the leds are twinkling at random speed and pattern, and yes there are fading not just turning on and off, and there are 20 of them, so how do they do it? No there isn’t a large micro controller with 20 channel pwm, they emulate it in the firmware, and use random numbers to set each leds twinkle. Its worth looking at the solution since in many application, especially with leds you will need to fade more channels than your pwm hardware can handle.
The project also comes with schematic, if you build this kit, place at least a series resistor of 100 Ohm value with PC5 pin, just in case you start to improve the software and forget that the pins can handle only 25mA.
Random twinkling LED heart: [Link]
The XBee devices are based on the ZigBee protocol, which was developed for short range wireless communication, especially for home automation systems, this project is a perfect example for its designed purpose. The device is a smart socket, which measures the momentary power consumption and sends it to a host or server, which logs the data for further use. Although the measuring device used is bought as is, and doesn’t has any switching element so you can’t switch off the load remotely.
The real potential of XBee isn’t even scratched with this project, so feel free to improve the original idea, the smart outlet is a great idea, but beside the monitoring some control functions should be added.
With the analog inputs and digital outputs including two PWM channels of the XBee it would be easy to build more advanced loggers or home automation systems without micro controller, the software runs on the PC and the XBee acts like hardware interface.
XBee power monitor: [Link]
The PWM frequency is about 10 kHz and does not make a noise in the motor. The 5 K Ohm potentiometer is connected to ADC input channel 0 and is converted to 1024 (10 bit) value, this value is applied to the PWM control and produces very smooth speed control. The HEXFET type IRL1004 has extremely low on resistance (0.009 Ohm) and requires only logic level drive, in this application it does not get warm even when controlling 1 Amp motor current. according the IRL1004 data sheet it can handle much higher motor current.
DC motor speed control using PWM: [Link]
The RGBLED and mRGBLED controllers allow you to control the color of RGBLEDs. This might sound trivial, but it actually takes a lot of resources to let you be able to set an RGBLED to any color you’d like. In addition to just lighting an LED up with a given color, these boards also let you install a color or setup transition/animations effects. They are easily controller via an RS232 connection (serial port) or an SPI connection (logic level).
The boards can be built reasonably inexpensively and there are PC boards available for either model. All source code for the onboard PIC processor as well as the software for configuring and using the controllers is available. The protocol is a simple protocol well documented.
I’m currently studying timers and pwm control on AVR’s so i can build my own projects related to controlling RGB LED’s. I hope I’ll get something up soon.
RGB LED PWM Control Project: [Link] – [via]