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? ==
 
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.''
 
 
=== 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 48: Line 29:
 
*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
  
== Hardware ==
+
=== Menu Choices ===
  
Hardware will come in 3 parts, the powersupply, the microcontroller and the analog charger section.
+
* File -> Exit     
 +
** Closes the comm port and exits the application.
  
=== PIC Hardware ===
+
* File -> About the Application 
 +
** About Box for the Application
  
BitWacker will be fine, will also have some alternatives.
+
=== Download and Install ===
We will need 2 analog inputs, 2 digital outputs, and a third digital or analog output.
 
  
=== Analog Charger Hardware ===
+
See the page [[BitWacker PIC and Other Microcontroller to Java Communications]]
  
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 ).
+
=== Command Details ===
 
 
Board design will be in Eagle, single sided for Toner Transfer.
 
 
 
 
 
Schematic (preliminary)
 
 
 
[[Image:SC_C.png]]
 
 
 
Board (preliminary)
 
 
 
[[Image:SC_B.png]]
 
  
== Software ==
+
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.
  
=== PIC Software ===
 
  
*Off the shelf BitWacker Software should be fine if used with BitWacker.
+
*Reset ( Reset )
*Will have a BoostC implementation for the PIC16F877A and similar
+
**No input, no output, should just work.
*Roll your own, will need 2 AD inputs, 1 output, and serial link.
 
  
=== PC Software ===
+
*Version
 +
**Input: none
 +
**Output: ( Field Version ) is the version response from the BitWacker.
  
Java Based have almost working version.
+
*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.
  
==== Menu Choices ====
+
*Output All ( )
 +
**3 inputs, one field for each port.  Binary input 1 for output high, 0 for output low.
  
* File -> Exit     
+
*Input All ()
** Closes the comm port and exits the application.
+
**Input:  Output one field for each port, binary.  
  
* 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)