((this page is optimal at 1280x1024 sorry folks, large pictures needed))
This discharger can handle any single cell technology, current 0-1165mA in almost 1mA step.
It measures the internal resistance also during the discharge.
This project is made together with OZ5DZL dzl.dk
We shared the job like this: Hardware = ME, Atmel AVR SW = ME, PC SW = OZ5DZL
We have often talked about how many batteries we use for our self and our kids,
some are Alkaline and some are NIMH rechargeable.
But in most cases we wanted to measure what we got for our bucks,
so we can choose the best and cheapest solution in all cases.
To be able to do this as smart and as cheap as possible, we decided to construct this simple discharger,
it consist of parts for small money and can easily be copied, we even left all the sw files online.
Later we will purplish measurements of the most popular Alkaline single cells we normally purchase,
we will make discharge curves at +25 and at -25 Celsius, and at hi and low current usage,
we will discharge an accurate current with a calibrated current generator so we can measure capacity and internal resistance
Schematic in big size gif or PDF file
PCB in printer friendly cols.
the mounting order is important
the home etched pcb needs a few "homemade" vias (thanks to 5dzl for the pcb)
Now all components in place, note the 3mm screw under the sense resistors.
Later a little alu heat sink will be mounted here.
Ready for software !! Feed me !! come on !!
RS232 Serial commands are made compatible with terminal programs for debugging:
so this hardware can be controlled manually or via 5DZL PC program:
9600 BAUD 8N1 no handshake, PC is master, AVR is slave,
AVR only transmit on request, only exception is the power up txt: *iPowerup[CR]
This is useful to check if the discharge sequence is being interrupted, or software failed.
* command intro byte
i info from avr, firmware ascii txt up to 30 characters
v volt from avr, ADC value can go from 0000 to 1023
t temperature from avr, ADC value can go from 0000 to 1023
r read back PWM value, value can go from 0000 to 1023
p pwm to avr, PWM value can go from 0000 to 1023
w write ee_adr pointer, value from 0000 to 0255
d write ee_data at pointer location, and ee_adr++, value from 0000 to 0255
q read ee_data from pointer location, and ee_adr++, value will be 0000 to 0255
I current on
O current off
*i from PC, *iV1.01 29 June 2006 OZ2CPU[CR] from AVR
*v from PC, *v0478[CR] from AVR
*t from PC, *t0841[CR] from AVR
*r from PC, *r0023[CR] from AVR
to change the PWM value you MUST send 4 numbers and RETURN.
*p1023[CR], only if correctly entered, the AVR reply: *p1023[CR]
to change the current on or off:
*I (current on) no return needed, *I[CR] from AVR
*O (current off) no return needed, *O[CR] from AVR
Vref is VCC 5.00 volt, can be set up in the PC software to 4.96V for example as my board
PWM value 1023 = 100% duty cycle = 1.1A discharge current
After selecting your com port
You can click on all the buttons to the left, and change the current at the slider
any change is in real time updated in the hardware, if all is correctly soldered.
hw-tester100.zip PC program Win95-WinXP, the hardware tester 1.00
The Battery Logger SW... soon...
more to come here soon..
PLEASE is you enjoy this, if you find it usefull, please donate an amount of your own choise to my paypal account:
Done June 2006, HW: OZ2CPU, SW: OZ5DZL