Editing Smart Battery Charger with Graphical Data Logger

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
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]]
 
This is one of a series of articles on Microcontroller Serial Communications, rooted at this site here: [[Microcontroller Serial Communications Articles]]
  
==Collaborator Anyone? ==
+
=== Early Mock Up of Screen ===
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.''
+
[[Image:BW_SS.png | Screen Shot ]]
  
=== Ways of Collaborating ===
+
Notes:
 
 
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 ===
 
  
[[Image:SBC_SS.png | Comming Soon ]]
+
* Inputs are on the left hand side of the screen, fields have a white background.
 +
* Buttons are in the middle.
 +
* Outputs are on the right, fields have a gray background.
  
Notes:
 
  
 
+
Field lablels may include a note as to the data type to be entered:
* Comming soon
+
* (b) binary, eight characters 0's and 1's as 00101111.
 +
* (d) decimal, a normal decimal number.
  
 
=== Some Features ===
 
=== Some Features ===
  
*Charging data graphed and saved to log file.
+
*Has most of the general features of [[RS232/USB Probe]] but specialized to the BitWacker, there are special fields for input and output which are treated as the most appropriate data type: for example the io configuration of a port is entered in binary for easier understanding of the input. The buttons remember the command string and formats up the command string ( after validating the inputs ).
*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 ==
+
*Does not support the bulk commands, support is for the commands with a single response.
  
Hardware will come in 3 parts, the powersupply, the microcontroller and the analog charger section.
+
*Checks for and reports BitWacker errors.
  
=== PIC Hardware ===
 
  
BitWacker will be fine, will also have some alternatives.
+
=== Menu Choices ===
We will need 2 analog inputs, 2 digital outputs, and a third digital or analog output.
 
  
=== Analog Charger Hardware ===
+
* File -> Exit     
 +
** Closes the comm port and exits the application.
  
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 ).
+
* File -> About the Application  
 +
** About Box for the Application
  
Board design will be in Eagle, single sided for Toner Transfer.
+
=== Download and Install ===
  
 +
See the page [[BitWacker PIC and Other Microcontroller to Java Communications]]
  
Schematic (preliminary)
+
=== Command Details ===
  
[[Image:SC_C.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.
  
Board (preliminary)
 
  
[[Image:SC_B.png]]
+
*Reset ( Reset )
 +
**No input, no output, should just work.
  
== Software ==
+
*Version
 +
**Input: none
 +
**Output: ( Field Version ) is the version response from the BitWacker.
  
=== PIC Software ===
+
*Configure
 +
**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.
  
*Off the shelf BitWacker Software should be fine if used with BitWacker.
+
*Output All ( )
*Will have a BoostC implementation for the PIC16F877A and similar
+
**3 inputs, one field for each port.  Binary input 1 for output high, 0 for output low.
*Roll your own, will need 2 AD inputs, 1 output, and serial link.
 
  
=== PC Software ===
+
*Input All ()
 
+
**Input:  Output one field for each port, binary.  
Java Based have almost working version.
 
 
 
==== Menu Choices ====
 
 
 
* File -> Exit     
 
** Closes the comm port and exits the application.
 
  
* File -> About the Application  
+
*Output Pin
** About Box for 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? ).
 +
**Output: None
  
* More comming as work proceeds.
+
*Input Pin
 +
**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.
  
=== Download and Install ===
+
*RC Servo
 +
**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
  
See the page [[BitWacker PIC and Other Microcontroller to Java Communications]] for the Java Components. For the microcontroller and other hardware email me.
+
*Memory Write
 +
**Input: Address to be written to.   Value to be stored in the address.
 +
**Output: None
  
=== Command Details ===
+
*Memory Read
 +
**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.

Please note that all contributions to OpenCircuits may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see OpenCircuits:Copyrights for details). Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)