12
http://www.instructables.com/id/Arduino-True-Battery-Capacity-Tester-Li-IonNiMH/ Home Sign Up! Browse Community Submit  All Art Craft Food Games Green Home Kids Life Music Offbeat Outdoors Pets Photo Ride Science Tech Arduino True Battery Capacity Tester (Li-Ion/NiMH/NiCD/Pb) by moris_zen  on November 10, 2009 Table of Contents Arduino True Battery Capacity Tester (Li-Ion/NiMH/NiCD/Pb)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Intro: Arduino True Battery Capacity T ester (Li-Ion/NiMH/NiCD/Pb)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Step 1: This is what you can get at the en d...(just to get you interested)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Step 2: Lets start at the be gining - A rduino  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Step 3: Bread board Arduino  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Step 4: FET with 2.2Oh m load  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Step 5: The SW  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Step 6: Auto Detect Battery tyoe  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Step 7: Discharging...  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Step 8: Discharge Circuit  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Step 9: My SW (free for anyo ne to u se)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Step 10: The schematics ...  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Step 11: Please support my work by voting for me !  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Related Instructables  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Comments  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Arduino True Battery Capacity Tester Li IonNiMH

  • Upload
    buditux

  • View
    224

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Arduino True Battery Capacity Tester Li IonNiMH

8/16/2019 Arduino True Battery Capacity Tester Li IonNiMH

http://slidepdf.com/reader/full/arduino-true-battery-capacity-tester-li-ionnimh 1/12

http://www.instructables.com/id/Arduino-True-Battery-Capacity-Tester-Li-IonNiMH/ 

Home  Sign Up!  Browse  Community  Submit

  All  Art  Craft  Food  Games  Green  Home  Kids  Life  Music  Offbeat  Outdoors  Pets  Photo  Ride  Science  Tech

Arduino True Battery Capacity Tester (Li-Ion/NiMH/NiCD/Pb)by moris_zen on November 10, 2009

Table of Contents

Arduino True Battery Capacity Tester (Li-Ion/NiMH/NiCD/Pb)  .............................................................................

Intro: Arduino True Battery Capacity Tester (Li-Ion/NiMH/NiCD/Pb)  .....................................................................

Step 1: This is what you can get at the end...(just to get you interested)  ..................................................................

Step 2: Lets start at the begining - Arduino  ........................................................................................

Step 3: Bread board Arduino  ..................................................................................................

Step 4: FET with 2.2Ohm load  .................................................................................................

Step 5: The SW  ............................................................................................................

Step 6: Auto Detect Battery tyoe  ...............................................................................................

Step 7: Discharging...  .......................................................................................................

Step 8: Discharge Circuit  .....................................................................................................

Step 9: My SW (free for anyone to use)  ..........................................................................................

Step 10: The schematics ...  ...................................................................................................

Step 11: Please support my work by voting for me !  .................................................................................

Related Instructables  ........................................................................................................

Comments  ................................................................................................................

Page 2: Arduino True Battery Capacity Tester Li IonNiMH

8/16/2019 Arduino True Battery Capacity Tester Li IonNiMH

http://slidepdf.com/reader/full/arduino-true-battery-capacity-tester-li-ionnimh 2/12

http://www.instructables.com/id/Arduino-True-Battery-Capacity-Tester-Li-IonNiMH/ 

Intro:  Arduino True Battery Capacity Tester (Li-Ion/NiMH/NiCD/Pb) If anyone saw my last instructable "Simple Li-Ion Battery Power Tester"  they can now upgrade to a computerized hi-tech version that is capable of measuring almosany type of rechargeable or none rechargeable batteries (but it will drain one charge from them in the process).It can even connect to a PC and give you a full "Data-sheet" graph of the discharge and total capacity.Note that this is my first Arduino project (I am not counting my "blink LED").

Image Notes

1. Auto Detect Battery type by voltage

Step 1: This is what you can get at the end...(just to get you interested)This is the graph you can get from the text file sent to the PC during drain cycle.

Image Notes1. Total capacity of a new 2000 mAh Bat was 1580mAH!2. When voltage drops bellow 950mV (for NiCD/NiMH) the load is removed (viathe FET)3. Seconds4. mV

Image Notes1. Li-ION Battery graph

Page 3: Arduino True Battery Capacity Tester Li IonNiMH

8/16/2019 Arduino True Battery Capacity Tester Li IonNiMH

http://slidepdf.com/reader/full/arduino-true-battery-capacity-tester-li-ionnimh 3/12

http://www.instructables.com/id/Arduino-True-Battery-Capacity-Tester-Li-IonNiMH/ 

Step 2: Lets start at the begining - ArduinoI really wanted to get this Diecimila copy Arduino board bit it took me ~2 weeks to get it by mail so I just had to start fast with my own bread-board Arduino so I purchaan ATMEGA168 and thought I could get it running without any more components .. to my suprize it didn't work and I just had to get another shipment with a 16Mhz cryand two 22pf caps .. then I got the next ...

Step 3: Bread board Arduino

I basically took junk apart and added the components one by one ...most of the information can be found in the Arduino web page :http://arduino.cc/en/Main/ArduinoBoardDiecimilaThey realy have everything you need .It took me about a week to get it up and running (bootloader / building an ISP cable and an RS232 cable ...) - you can read all about this in the site above .

Image Notes1. connector to LCD2. ATMEGA1683. Max2324. This led indicates you want to vote for me :-) Does anyone even read all these comments?

Step 4: FET with 2.2Ohm loadit was fairly simple to add a FET with "on" resistance of ~8mOHM (no barly any power disipation on it ) and a 2.2 10W resistor .I connected two A/D pins from the Arduino to the resistor poles and subtracted the values to get the exact volatge drop on the resistor .Now I samples them every second and acumulated the current (I=DeltaV/R).I also added a buzzer to indicate when charging was over and stoped the discharge .

Page 4: Arduino True Battery Capacity Tester Li IonNiMH

8/16/2019 Arduino True Battery Capacity Tester Li IonNiMH

http://slidepdf.com/reader/full/arduino-true-battery-capacity-tester-li-ionnimh 4/12

http://www.instructables.com/id/Arduino-True-Battery-Capacity-Tester-Li-IonNiMH/ 

Image Notes1. This FET was removed from a TV set - it has 4mOhm on-resistance.cool!2. 10W 2.2Ohm Resistor load

Step 5: The SWSo I also connected and LCD (which I took apart from some other junk) and found the data-sheet on the net + a cool driver from the Arduino web page and started cod.

Auto detecting battery type by the voltage .

Image Notes1. Testing voltage to deterim battery type2. RS232 connector3. Reset4. Power On5. Load is active (discharging)6. Ventilation holes for the 10W resistor

Step 6: Auto Detect Battery tyoeIt will detect if it is NiMH/NiCD or Li-ION by the voltage range .And then start the discharge cycle.

Page 5: Arduino True Battery Capacity Tester Li IonNiMH

8/16/2019 Arduino True Battery Capacity Tester Li IonNiMH

http://slidepdf.com/reader/full/arduino-true-battery-capacity-tester-li-ionnimh 5/12

http://www.instructables.com/id/Arduino-True-Battery-Capacity-Tester-Li-IonNiMH/ 

Image Notes1. Auto Detect Battery type by voltage

Step 7: Discharging...The discharge can take anywhere from 30-120 minuets depending on batery capacity but at the end you get a true indication of battery capacity / quality .Do you want to use that battery for your air-plain receiver or not ?This is the diagram of the discharge circuit...

Image Notes1. The discharge just started - the 1Ma will increase as time goes bye..

Step 8: Discharge Circuitvery simple with the 2 A/D connected on the two sides of the resistor / Vr=Vbat-Vfet.

Page 6: Arduino True Battery Capacity Tester Li IonNiMH

8/16/2019 Arduino True Battery Capacity Tester Li IonNiMH

http://slidepdf.com/reader/full/arduino-true-battery-capacity-tester-li-ionnimh 6/12

http://www.instructables.com/id/Arduino-True-Battery-Capacity-Tester-Li-IonNiMH/ 

Image Notes1. Connect to pin 19 of Atmega1682. Battery to be tested3. 10W load

Step 9: My SW (free for anyone to use)// include the library code:

#include

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);// initialize the library with the numbers of the interface pinsint sensorPin = 0; // select the input pin for the potentiometer (pin 23)int sensor2Pin = 2; // select the input pin for the potentiometer (pin 23)int ledPin = 13; // select the pin for the LEDint SPKPin = 6;int sensorValue = 0; // variable to store the value coming from the sensorint sensor2Value = 0; // variable to store the value coming from the sensorfloat LiMinThreshold = 2700; // Lithium Minimal Voltage for load removalfloat LiMaxThreshold = 4200; // Lithium Max Voltage for load removalfloat NmhMinThreshold = 950; // NMH Minimal Voltage for load removalfloat NmhMaxThreshold = 1600; // NMH Max Voltage for load removalfloat SelectedMinThreshold = 5000;int i;int BatVoltage = 5000;int FetVoltage = 5000;

long TotalCurrent = 0;boolean done = false;unsigned long PrevMillis ;unsigned long MillisPassed ;

void CL2(){  lcd.setCursor(0, 1);// Second line first char  lcd.print(" ");  lcd.setCursor(0, 1);// Second line first char}

void setup() {  Serial.begin(9600);// start serial port to send data during run to the PC  pinMode(ledPin, OUTPUT);//activation led and enable for FET  pinMode(SPKPin, OUTPUT);//activation led and enable for FET  lcd.begin(24, 2);// set up the LCD's number of rows and columns:  lcd.print("Bat PWR Tester[Active]"); // Print a message to the LCD.  lcd.setCursor(0, 1);// Second line first char

  lcd.print("Detecting Bat Type..."); // print voltage value  delay(2000);  lcd.setCursor(0, 1);// Second line first char  lcd.print(" ");  lcd.setCursor(0, 1);// Second line first char  digitalWrite(ledPin, HIGH); // set the LED on  sensorValue = analogRead(sensorPin); // read the value from the sensor:  digitalWrite(ledPin, LOW); // set the LED off  // Detecting battery type  BatVoltage = sensorValue*4.887;  if (BatVoltage > 4500){  lcd.print("Warning high-V! ");  done = true;}  else if (BatVoltage > LiMinThreshold){  lcd.print("Type:Li-Ion Bat ");  SelectedMinThreshold = LiMinThreshold;}

Page 7: Arduino True Battery Capacity Tester Li IonNiMH

8/16/2019 Arduino True Battery Capacity Tester Li IonNiMH

http://slidepdf.com/reader/full/arduino-true-battery-capacity-tester-li-ionnimh 7/12

http://www.instructables.com/id/Arduino-True-Battery-Capacity-Tester-Li-IonNiMH/ 

  else if (BatVoltage > NmhMinThreshold){  lcd.print("Type:NiMH/Cd Bat ");  SelectedMinThreshold = NmhMinThreshold;}  else{  lcd.print("Unknown Bat V<1 ");  done = true;}  lcd.print("V=");  lcd.print(sensorValue*4.887); // print voltage value  Serial.print("DT[ms]");Serial.print("\t");Serial.print("Bat[mV]");Serial.print("\t");Serial.print("Fet[mV]");Serial.println("");

  delay(3000);  CL2();  PrevMillis = millis();}

void loop() {  if (BatVoltage > SelectedMinThreshold && !done) {  digitalWrite(ledPin, HIGH); // set the LED on  sensorValue = analogRead(sensorPin); // read the value from the sensor:  sensor2Value = analogRead(sensor2Pin); // read the value from the FET:  FetVoltage = (sensor2Value*4.887);  BatVoltage = (sensorValue*4.887);  CL2();  lcd.print("V=");  lcd.print(BatVoltage); // print voltage value  lcd.print("mV");  //lcd.print(FetVoltage); // print voltage value  TotalCurrent=TotalCurrent+MillisPassed/1000*(BatVoltage-FetVoltage)/2.2/3.6;

  lcd.print(" I=");  lcd.print(TotalCurrent/1000);

lcd.print("mAH ");  delay(1000);  MillisPassed = millis()- PrevMillis;  PrevMillis = millis();  Serial.print(int(MillisPassed));  Serial.print("\t"); // prints a tab  Serial.print(BatVoltage);  Serial.print("\t"); // prints a tab  Serial.print(FetVoltage);  Serial.println(""); // prints a tab  CL2();  }  else  {  done=true;

  digitalWrite(ledPin, LOW); // set the LED off - stop loading  lcd.setCursor(0, 0);// First line first char  lcd.print("Bat Power Tester [DONE] "); // Print a message to the LCD.  CL2();//clear line 2  sensorValue = analogRead(sensorPin); // read the value from the sensor:  BatVoltage = (sensorValue*4.887);  lcd.setCursor(0, 1);// Second line first char  lcd.print("V=");  lcd.print(BatVoltage); // print voltage value  lcd.print("mV I=");  lcd.print(TotalCurrent/1000);

lcd.print("mAH ");  for (int i=0; i<100 ; i++){  digitalWrite(SPKPin, HIGH);  delay(1);  digitalWrite(SPKPin, LOW);  delay(1);  }

  delay(1000);  }}

Page 8: Arduino True Battery Capacity Tester Li IonNiMH

8/16/2019 Arduino True Battery Capacity Tester Li IonNiMH

http://slidepdf.com/reader/full/arduino-true-battery-capacity-tester-li-ionnimh 8/12

http://www.instructables.com/id/Arduino-True-Battery-Capacity-Tester-Li-IonNiMH/ 

Step 10: The schematics ...All the schematics for arduino can be found on the Arduino web page (step 2).you can Also find how to connect standard LCDs on the same site so no need to copy i t all here.

Step 11: Please support my work by voting for me !All and all prototype Breadboard and then moving it to a box and soldering it all together took me two weeks (night work 3-4 hours a day)

Thanks you for reading and feel free contacting me with any questions / remarks .

I am now an Arduino expert (naa I am not - 2 weeks XP )But I have many new project I would like to do .

Related Instructables

RechargeableBatteryCapacity Tester

by BrianH

SAFERecharging ofExotic Batteries,NiMH, LiPO andcomplex batterypacks ormultiple cells.

by erckgillis

NiCd - NiMH PCBased SmartCharger -

Discharger by

hosam_eldin

HomemadeCordless DrillBattery Charger

by yeltrow

Extend Life... (ofnotebook

batteries) by

denanderen

Increase batterylife for

electronics by

Plasmana

Comments

35 comments Add Comment

 blast09 says:  Mar 16, 2011. 10:53 AM REP

Sorry but I miss something...It seems to me there's a typo in PPT diagram.Pin "fetVoltage[plus]" on discharge circuit is left floating around. Could you confirm this? Thanks for great work anyway.

 paulryanmini says:  Mar 10, 2011. 1:16 PM REP

hi allfixed the code after a long night. i can get the setup to start up and the lcd turns on. it will then pick up what type of battery is connected and will measure tvoltage and current of the battery, but the led wont illuminate which leads me to believe the mosfet is not switching on. im using a irf540a with a rds on of.052 ohms. any ideas?

Ive been using a 1.3v 1200mah AA rechargeable battery nimh.

any ideas?thanks

 paulryanmini says:  Mar 9, 2011. 11:31 AM REPhii copied the code above directly into ardunio 0022 program. i have the duemilanove clone.

it comes up with the following errors:

dunkbat.cpp:3:10: error: #include expects "FILENAME" ordunkbat:3: error: 'LiquidCrystal' does not name a typedunkbat.cpp: In function 'void CL2()':dunkbat:23: error: 'lcd' was not declared in this scopedunkbat.cpp: In function 'void setup()':dunkbat:31: error: 'lcd' was not declared in this scopedunkbat.cpp: In function 'void loop()':dunkbat:76: error: 'lcd' was not declared in this scopedunkbat:99: error: 'lcd' was not declared in this scope

Page 9: Arduino True Battery Capacity Tester Li IonNiMH

8/16/2019 Arduino True Battery Capacity Tester Li IonNiMH

http://slidepdf.com/reader/full/arduino-true-battery-capacity-tester-li-ionnimh 9/12

http://www.instructables.com/id/Arduino-True-Battery-Capacity-Tester-Li-IonNiMH/ 

any ideas im a complete noobthankspaul

 paulryanmini says:  Mar 2, 2011. 10:30 AM REP

thanks very much. im building it as part of a assignment for power electronics.

i will then alter it to work with 36v 14ah lithium polymer batteries somehow :-) if you have any ideas that would be great

 slvr00gt says:  Jan 9, 2011. 2:10 PM REP

Here is more detailed diagram of the same thing

 slvr00gt says:  Mar 2, 2011. 6:47 AM REP

Adding better quality diagram

BatteryDischargeTester.ppt63 KB

 paulryanmini says:  Mar 2, 2011. 4:35 AM REP

hiits a fantastic circuit and ive started to build it. have you by any chance got a higher resolution of the diagram above i cant zoom in enough? thanks

 moris_zen says:  Mar 2, 2011. 10:50 AM REP

I see some one made a diagram - great work

 slvr00gt says:  Mar 2, 2011. 6:49 AM REP

Just added powerpoint file above.... My diagram jpeg was originally high quality, but this forum compressed it into nothing. So I added original ppt fi

 arnefl says:  Feb 25, 2011. 7:43 AM REP

Sure I do :-)

 slvr00gt says:  Jan 9, 2011. 2:13 PM REPHere is my change to the code. Change adjusts the voltage when the test stops. It also prints out capacity over time to the serial port. and changes input pnumbers to what I end up using

$ diff my.cpp orig.cpp7,8c8,9< int ledPin = 8; // select the pin for the LED< int SPKPin = 9;---> int ledPin = 13; // select the pin for the LED> int SPKPin = 6;18c19< int FetVoltage = 0;---> int FetVoltage = 5000;66,67d66< Serial.print("\t");

< Serial.print("Capacity[mAH]");75c74< if ( (BatVoltage-FetVoltage) > SelectedMinThreshold && !done) {---> if (BatVoltage > SelectedMinThreshold && !done) {86c85< TotalCurrent=TotalCurrent+MillisPassed/1000*(BatVoltage-FetVoltage)/10/3.6;---> TotalCurrent=TotalCurrent+MillisPassed/1000*(BatVoltage-FetVoltage)/2.2/3.6;98,99d96< Serial.print("\t"); // prints a tab< Serial.print(TotalCurrent/1000);

Page 10: Arduino True Battery Capacity Tester Li IonNiMH

8/16/2019 Arduino True Battery Capacity Tester Li IonNiMH

http://slidepdf.com/reader/full/arduino-true-battery-capacity-tester-li-ionnimh 10/12

http://www.instructables.com/id/Arduino-True-Battery-Capacity-Tester-Li-IonNiMH/ 

 slvr00gt says:  Jan 6, 2011. 11:58 PM REP

In the code you have following if-statement, where you check whether or not battery has reached the minimum., but in the check, you don't factorFetVoltage.

Should this statement:"if (BatVoltage > SelectedMinThreshold && !done) {"be replaced with this:"if ( (BatVoltage-FetVoltage) > SelectedMinThreshold && !done) {"

Thanks for the great instructable. I just finished building your design!

 moris_zen says:  Jan 7, 2011. 8:27 AM REP

It makes me happy people do actually use my designs .It has been a while a go and I dont remember exactly but as far as I do I connected two points on the battery as the voltage on the Bat is the differencebetween them (or was that over the resistor) .Pls check if the voltage is not clearly just over the battery - If I got it wrong then there may have been a mistake yet the voltage drop over a good FET (40mohm) could be neglected- o that may be the reason .

 moris_zen says:  Jan 7, 2011. 8:31 AM REP

OK .. correction - the voltage on the top of the resistor is the battery voltage - it is correct .

 slvr00gt says:  Jan 7, 2011. 9:44 AM REP

Yes, the voltage drop over FET is negligible ( roughly 0.03V), but in your design it is measured and used in calculation:TotalCurrent=TotalCurrent+MillisPassed/1000*(BatVoltage-FetVoltage)/2.2/3.6;

 slvr00gt says:  Jan 7, 2011. 7:26 AM REP

My second question is how do you get drain data from microcontroller board to PC?

 moris_zen says:  Jan 7, 2011. 8:30 AM REP

I sent the info over RS232 . if you connect your PC (same channel I use to program it) ad open a terminal in the correct baud rate - you should see theinformation just coming in .Copy paste into excel and make a graph for it .

 TheBlackBird says:  Oct 7, 2010. 9:12 AM REP

Hello.I would like very much to build this, but can you please clarify some aspects.Do you use one or two connections to the arduino, because in the schematic you only draw one (on pin 19), and in the code you mention pin 23"int sensorPin = 0; // select the input pin for the potentiometer (pin 23)int sensor2Pin = 2; // select the input pin for the potentiometer (pin 23)"and what is the potentiometer ?

In short i don't understand what pin of the arduino i connect where.Thank you.

 moris_zen says:  Oct 14, 2010. 5:09 PM REP

Hi ,Sorry for the late response ,I don't really remember so much but I tried to review the code .I used the ledpin as the output pin (all ground must be connected) . The ledpin activates the FET and thus the load .There might be some mixup between the pins in the code and in the comments because I decided to make my own arduino (ot use the purchased boaand thus indicated the physical (chip) pin in the comments (and I did a copy paste mistake in the two lines of the sensors).In any case I used two pins for sensing the voltage across the resistor . the difference if the voltage drop on the load resistor and when you divide this bthe resistance you get the current flow .I hope this helped .

Page 11: Arduino True Battery Capacity Tester Li IonNiMH

8/16/2019 Arduino True Battery Capacity Tester Li IonNiMH

http://slidepdf.com/reader/full/arduino-true-battery-capacity-tester-li-ionnimh 11/12

http://www.instructables.com/id/Arduino-True-Battery-Capacity-Tester-Li-IonNiMH/ 

 TheBlackBird says:  Oct 14, 2010. 9:31 AM REP

Moris, it is great that you have made this instructable.But because you did it in a haste there are things uncleat.So preety please :) can you post some answers from time to time.Don't let us hang.

 Euphorbium says:  Sep 1, 2010. 3:48 AM REP

BatVoltage = sensorValue*4.887; Where does this 4.887 comes from? Is it some constant?

 Madrias357 says:  Aug 20, 2010. 1:31 PM REP

Yes, I read all of the little comments.

 mathman47 says:  Feb 11, 2010. 4:01 AM REP

Great job. Finally something useful for the Arduino. I can use as a ham radio operator with lots of batteries. Keep up the good work and post more whenyou get a new project. Oh, does the FET have a part number or any markings on it?

 moris_zen says:  Apr 25, 2010. 1:02 PM REP

It is all closed in a box now but I will give you a tip to how I select my components ...when I have old electronics I take a torch and burn the back side very well - then when all solder is solf I hit it many times on the other sides and thecomponents just fall off . I colect and sotrt them (Just did it with an old TV set) .The when I need a FET or any other components I just search the net for the PNs on the components and take whatever is best suited .So back to your question - you can use almost any FET that can withstand the current (most will do the job .. you need low impedance .. check out theDS from the net)good luck .

 moris_zen says:  Feb 11, 2010. 11:30 AM REP

The box is shut tight and I cant get to the PN of the FET but I just open old TVs and look around then search the PN on the net and see if they can meethe current .. here I really over did it :-)

 guyfrom7up says:  Nov 10, 2009. 7:58 PM REP

very nice and well done! This is an arduino project I actually like! It used a real schematic (thankyou! lol) and it was interfaced with a computer, which is oof the main convienient part of the arduino (otherwise i strongly suggest a plain microcontroller). I'm currently working on a "supermeter" which is prettymuch like a multimeter with a whole bunch more functions. The current model i'm designing has about 40 functions and I'm adding some code (I'll be usingan avr, not an arduino, even though they are both avr :P) so that it'll now test battery capacity. Great instructable, and 5 stars!

 moris_zen says:  Apr 25, 2010. 12:59 PM REP

Thanks for the FB .I would love to see your instructable - pls post it when you are done.I was thinking of adding charging capability to it but after finding a micro controller multi charger for 35$ I decided to just buy it ....

I don't think it tests for the actual capacity .. I should get it soon from Ebay

 moris_zen says:  Nov 11, 2009. 1:11 PM REP

Thanks .The schematics is real simple and is based on the original Arduino Delicima and then just a fet with a load .. tx rx from arduino to pc (you actualy onlyneed tx) and you get a clear table for excel.post you project when you are done!good luck.

 cipriti says:  Apr 25, 2010. 1:25 AM REP

I used a BUZ11 fet and it's not working. Any ideeas?

 megapix says:  Jun 18, 2010. 5:45 PM REP

Most likely reason would be connecting it wrong. Another possibility is that the threshold voltage for a BUZ11 (the voltage where it just starts to

turn on) can be as high as 4 Volts. So it could be that the 5 Volt drive from the Arduino is not turning it fully on. When they measure the resistanin the data sheet they put 20 Volts on the gate (Vgs).

 MattSum1 says:  Nov 17, 2009. 6:28 AM REP

Can you provide some more info on the non processor electronics? In one step you mention "a FET with "on" resistance of ~8mOHM" in which I'm not surwhat the ~ means. Then later you say "This FET was removed from a TV set - it has 4mOhm on-resistance.cool!" which is different. Any info on whatdifferent resistances does in this case would be very helpful. Also, besides the 2.2 ohm 10w, I see another resistor, a couple led's, a "reset" button, and ofcourse the LCD. Can you maybe provide some info on the "non arduino" components & possibly a schematic showing the non arduino stuff?

Page 12: Arduino True Battery Capacity Tester Li IonNiMH

8/16/2019 Arduino True Battery Capacity Tester Li IonNiMH

http://slidepdf.com/reader/full/arduino-true-battery-capacity-tester-li-ionnimh 12/12

htt // i t t bl /id/A d i T B tt C it T t Li I NiMH/

 moris_zen says:  Nov 18, 2009. 1:37 PM REP

 I will try to answer the best I can - you have many questions .1. The 4-8 mili Ohm is approximately the "on" resistance of the FET - use an N channel FET any kind you find (try Wikipedia for info on FETs if you donknow what they are .... basically it is an electronic switch with low resistance).2. all Arduinos have a reset Switch used to restart the device / program it . if you are not familiar with Arduino - pls go to the web page I placed in thearticle . I can't pass 2 weeks of learning in a sentence - you must o the web page and read about it - what it does and how .3. I just used a led to indicate when the FET is "ON" with a resistor in series so not to over load it (1K ohm will do the trick).4. to connect an LCD you need to use the library in the Arduino (see SW include file) . you can find all the info and an example on the Arduino web pag.I hope I helped - I know not completely but I can't copy all Arduino site here .I hope you understand.

 amidar says:  Nov 12, 2009. 4:20 AM REP

Hello, just a simple question. :-)

What for is division with 3.6 in this formula ?

TotalCurrent=TotalCurrent+MillisPassed/1000*(BatVoltage-FetVoltage)/2.2/3.6;

moris_zen says:  Nov 12, 2009. 1:26 PM REP

 Nice to see someone actualy read the code - way to go!3.6 is 3600 seconds (an hour) 60x 60 - I put 3.6 due to removing 1000 from the (what do you call the upper part divisor divider .. whatever):-)

 amidar says:  Nov 12, 2009. 3:29 PM REP

I figured that just about 10ps after i pressed "post comment" button ! :-)Anyway, here is one very instructive site releted to battery charging/recharging.

I learned a lot especially from schematic part of the project. :-)

www.avr-asm-tutorial.net/akkuload/en/index.html