Difference between revisions of "Smart Battery Charger with Graphical Data Logger"

From OpenCircuits
Jump to navigation Jump to search
 
(12 intermediate revisions by 3 users not shown)
Line 9: Line 9:
 
Purpose:
 
Purpose:
  
 +
*A smart [[battery]] charger ( one component of which is a PC ) for charging, discharging... NiCad, Nickel Metal, and perhaps other battery types.
 +
*Graphical record of the charge current and voltag.
 +
*A complete log of activity is provided both to the screen and to a log file.
  
A complete log of activity is provided both to the screen and to a log file.
+
This is one of a series of articles on Microcontroller Serial Communications, rooted at this site here: [[Microcontroller Serial Communications Articles]]
 +
 
 +
==Collaborator Anyone? ==
 +
Anyone want to help with this project?  I have plans for the hardware, but software could support a lot of variants, and you may prefer a different hardware configuration.  The Java software I will work on untill it works well enough, but I could use testers, and once it works well enough the code will be open and available for others to enhance.
 +
 
 +
''Some people at the [http://forum.sparkfun.com/viewtopic.php?t=13801 Sparkfun forum] seem interested.''
  
This is one of a series of articles on Microcontroller Serial Communications, rooted at this site here: [[Microcontroller Serial Communications Articles]]
+
=== Ways of Collaborating ===
 +
 
 +
Anything you want to do is fine, it could include:
 +
 
 +
* Just building ( and testing ) the charger
 +
* Improving and/or extending the board, a more compact board, adding a PIC and power supply..... are possible ideas.
 +
* Writing alternative PC interfaces for the hardware, some might prefer .Net or....
 +
* Enhancing the Java program ( you need to let me finish what I am doing first )
 +
* Testing the Java -- some can be done using any device with a serial port, I have a simulator that substitutes for some of the hardware.
 +
* You can just lurk, that is participate in a stealth mode.
 +
* Add to the list anything that occurs to you, I will let you know if it works for me.
  
 +
== OverView ==
 
=== Screen ===
 
=== Screen ===
  
Line 29: Line 48:
 
*Charging algorithim on the PC: High current phase may be ended by peaking, time limit, or voltage limit
 
*Charging algorithim on the PC: High current phase may be ended by peaking, time limit, or voltage limit
  
=== Menu Choices ===
+
== Hardware ==
 +
 
 +
Hardware will come in 3 parts, the powersupply, the microcontroller and the analog charger section.
 +
 
 +
=== PIC Hardware ===
 +
 
 +
BitWacker will be fine, will also have some alternatives.
 +
We will need 2 analog inputs, 2 digital outputs, and a third digital or analog output.
 +
 
 +
=== Analog Charger Hardware ===
  
* File -> Exit     
+
Circuit overview.  An operational amplifier and darlington transistor will be used as a constant current source.  A second operational amplifier will amplify the current signal for input to the PIC.  A third operational amplifier will amplify and condition the voltage signal for the PIC.  The operational amplifiers will be powered by a single 5 volt power supply. Input voltage will be between 12 and 25 volts so that many cell batteries can be charged.  To reverse the current for discharge 2, 2 pole relays will be used.  The relays could be replaced by a double pole double throw switch ( the user, not the software would have to be used to throw the switch ).
** Closes the comm port and exits the application.
+
 
 +
Board design will be in Eagle, single sided for Toner Transfer.
  
* File -> About the Application 
 
** About Box for the Application
 
  
* More comming as work proceeds.
+
Schematic (preliminary)
  
=== Download and Install ===
+
[[Image:SC_C.png]]
  
See the page [[BitWacker PIC and Other Microcontroller to Java Communications]] for the Java Components.  For the microcontroller and other hardware email me.
+
Board (preliminary)
  
=== Command Details ===
+
[[Image:SC_B.png]]
  
These commands are fairly direct implementations of the basic command set of the BitWacker.  The interface does change format of the input.  For example in configuring the IO ports binary seems easier than decimal.
+
== Software ==
  
 +
=== PIC Software ===
  
*Reset ( Reset )
+
*Off the shelf BitWacker Software should be fine if used with BitWacker.
**No input, no output, should just work.
+
*Will have a BoostC implementation for the PIC16F877A and similar
 +
*Roll your own, will need 2 AD inputs, 1 output, and serial link.
  
*Version
+
=== PC Software ===
**Input: none
 
**Output: ( Field Version ) is the version response from the BitWacker.
 
  
*Configure
+
Java Based have almost working version.
**Input: 4 Fields, 3 Fields( binary ) for the direction of PortA, PortB, PortC ( 1 is input, 0 is output.), and one input for then number of Analog channels ( 0 to 12 ). 
 
** Output: none.
 
  
*Output All ( )
+
==== Menu Choices ====
**3 inputs, one field for each port.  Binary input 1 for output high, 0 for output low.
 
  
*Input All ()
+
* File -> Exit     
**Input:  Output one field for each port, binary.  
+
** Closes the comm port and exits the application.
  
*Output Pin
+
* File -> About the Application  
**Inputs:  Port Field ( use either decimal numbers 0, 1, 2, or A, B, or C).  Pin Field, use decimal number 0 to 7.  State 0 or 1 ( could be in any base, how can you tell? ).
+
** About Box for the Application
**Output: None
 
  
*Input Pin
+
* More comming as work proceeds.
**Input:2 Inputs.  Port use either decimal numbers 0, 1, 2, or A, B, or C.  Pin, use decimal number 0 to 7. 
 
**Output: State of pin; 0 or 1.
 
  
*RC Servo
+
=== Download and Install ===
**Input: As with Output Pin except that value is between 1 and 11890 and will cause a high pulse whose duration is proportionally between 1ms and 2ms. These pulses repeat every 19ms.  This controlls the servo's rotation
 
**Output: None
 
  
*Memory Write
+
See the page [[BitWacker PIC and Other Microcontroller to Java Communications]] for the Java Components. For the microcontroller and other hardware email me.
**Input: Address to be written to.   Value to be stored in the address.
 
**Output: None
 
  
*Memory Read
+
=== Command Details ===
**Input:  Address to be read.
 
**Output: Value stored in the address.
 
  
 +
comming.....
  
 
=== Bugs and Enhancements ===
 
=== Bugs and Enhancements ===
  
 
See the list at [[RS232Probe Enhancements and Bugs]] a list for all the related applications.
 
See the list at [[RS232Probe Enhancements and Bugs]] a list for all the related applications.

Latest revision as of 07:03, 10 April 2011

Summary[edit]

  • Name: Smart Battery Charger with Graphical Data Logger
  • Status: still developing, java is close to working.
  • Technology: Java -- should run on many platforms, Windows 98 through Vista, Mac, Linux PIC, could be BitWacker or even other microcontroller with serial port.
  • Author: russ_hensel ( where you can find an email address to reach me )
  • License: not fully determined, but open source and object code.

Purpose:

  • A smart battery charger ( one component of which is a PC ) for charging, discharging... NiCad, Nickel Metal, and perhaps other battery types.
  • Graphical record of the charge current and voltag.
  • A complete log of activity is provided both to the screen and to a log file.

This is one of a series of articles on Microcontroller Serial Communications, rooted at this site here: Microcontroller Serial Communications Articles

Collaborator Anyone?[edit]

Anyone want to help with this project? I have plans for the hardware, but software could support a lot of variants, and you may prefer a different hardware configuration. The Java software I will work on untill it works well enough, but I could use testers, and once it works well enough the code will be open and available for others to enhance.

Some people at the Sparkfun forum seem interested.

Ways of Collaborating[edit]

Anything you want to do is fine, it could include:

  • Just building ( and testing ) the charger
  • Improving and/or extending the board, a more compact board, adding a PIC and power supply..... are possible ideas.
  • Writing alternative PC interfaces for the hardware, some might prefer .Net or....
  • Enhancing the Java program ( you need to let me finish what I am doing first )
  • Testing the Java -- some can be done using any device with a serial port, I have a simulator that substitutes for some of the hardware.
  • You can just lurk, that is participate in a stealth mode.
  • Add to the list anything that occurs to you, I will let you know if it works for me.

OverView[edit]

Screen[edit]

Comming Soon

Notes:


  • Comming soon

Some Features[edit]

  • Charging data graphed and saved to log file.
  • May be used to charge, discharge, test, or cycle batteries.
  • Charging algorithim on the PC: High current phase may be ended by peaking, time limit, or voltage limit

Hardware[edit]

Hardware will come in 3 parts, the powersupply, the microcontroller and the analog charger section.

PIC Hardware[edit]

BitWacker will be fine, will also have some alternatives. We will need 2 analog inputs, 2 digital outputs, and a third digital or analog output.

Analog Charger Hardware[edit]

Circuit overview. An operational amplifier and darlington transistor will be used as a constant current source. A second operational amplifier will amplify the current signal for input to the PIC. A third operational amplifier will amplify and condition the voltage signal for the PIC. The operational amplifiers will be powered by a single 5 volt power supply. Input voltage will be between 12 and 25 volts so that many cell batteries can be charged. To reverse the current for discharge 2, 2 pole relays will be used. The relays could be replaced by a double pole double throw switch ( the user, not the software would have to be used to throw the switch ).

Board design will be in Eagle, single sided for Toner Transfer.


Schematic (preliminary)

SC C.png

Board (preliminary)

SC B.png

Software[edit]

PIC Software[edit]

  • Off the shelf BitWacker Software should be fine if used with BitWacker.
  • Will have a BoostC implementation for the PIC16F877A and similar
  • Roll your own, will need 2 AD inputs, 1 output, and serial link.

PC Software[edit]

Java Based have almost working version.

Menu Choices[edit]

  • File -> Exit
    • Closes the comm port and exits the application.
  • File -> About the Application
    • About Box for the Application
  • More comming as work proceeds.

Download and Install[edit]

See the page BitWacker PIC and Other Microcontroller to Java Communications for the Java Components. For the microcontroller and other hardware email me.

Command Details[edit]

comming.....

Bugs and Enhancements[edit]

See the list at RS232Probe Enhancements and Bugs a list for all the related applications.