Introduction: Battery Capacity Tester (Arduino)

Picture of Battery Capacity Tester (Arduino)

Hi friends,

This is my first trying on arduino and it is my engineering design project. This is pretty simple to make.

First of all, you need to know how you can measure analog and digital value on Arduino. Atfter you read these values, you can achive SOC (state of charge) and mAH (mili Amper Hour) by writting some codes. (I used 1.5 Volt Battery, so I design a code according to it.)

There are some constant values on the code.

Maximum voltage value is 1.5 V

Minimum voltage value is 0.9 V

Maximum mAH value is 1500 (mAH)

In other words;

When your battery level is 1.5 Volt, your SOC value is %100 and your capacity is 1500 mAH.

When your battery level is 0.9 Volt, your SOC value is %0 and your capacity is 0 mAH.

This is my SOC formula, SOC=(voltage-0.9)*(100/0.6); (voltage= Analog value of battery)

And this is my mAH formula, mAH= ((voltage-0.9)/0.6)*1500;


1) Arduino Uno

2) LCD display (16x2)

3) IRF510

4) 10K resistor

5) 2.2 resistor (1 Watt) (This is important for your Arduino not to burn!)

This is easy project. But it helped me to improve my Arduino knowledge. I hope, it helps you, too.


simone.emulab (author)2017-11-19

Where is the code ?

johnnyjihn (author)2017-04-23

codes pls cant start the work :(

andreaswabbes (author)2017-03-28

Hey, where can i find the code please?

juliocr1 (author)2016-10-26

boa tarde Burak Tutal, por favor me envie o link onde eu possa pegar o código do arduino. desde já agradeço.

adungr (author)2016-09-25

code please

HeyitsA (author)2016-09-04

Where is the code please ?

Bakerd1 (author)2016-05-11

please provide a code for me plzzzzzzzz

Bakerd1 (author)2016-05-11

it would be nice if you provided a sketch.

devicemodder (author)2016-04-03

Where's the code?

Reivach777 (author)2015-11-20

Hi, is the code available? I'd really appreaciate it.

Varen Greycloak (author)2015-10-03

This is actually rather brilliant!

Thank you man :)

holidayv (author)2015-01-19

We really do need the arduino code you used to easily replicate what you have done.

BurakTutal (author)holidayv2015-01-30

I shared the code. :) I hope it helps you a lot to improve your Arduino skills :)

Indu. (author)BurakTutal2015-09-23

i cant find the code link.i really need those codes.can any1 help me out?

Indu. (author)2015-09-22

can i get the codes?

halilbaris (author)2015-03-19

Yaptigin program iyi gibi gorunuyor.Buna Batarya test cihazi demek dogru olmaz. Cunku denenecek herhangi bir batarya(Ni-Cad , Li-ion , .......) ile farkli akim degerleri alirsin bu sekilde ayarlanmasinin imkani olmaz . Ama su sekilde yapabilirsin
(R1) (R2)
(Batarya +) ----------[[[[[]]]]]]]]----- |-----[[[[[[[[]]]]]]]]----------(Batarya - GND )
|-------------- Analog
daha sonra R2nin uzerine dusen elektirigi bul .... ve bataryanin doluluk olanini bu sekilde cikarabilirsin

Yaptiginiz elektronik devre duzenegi Battery Drainer gibi bisey ... Bu sekilde olculmesi Uygun degil ...

BurakTutal (author)halilbaris2015-03-26

Yorumunuz için teşekkür ederim. Evet dediğinize baktımda benim ki "Battery Drainer" dediğinize daha çok benziyor. Vermiş olduğunuz linkteki proje gerçekten iyi. Proje yapım aşamamda görmüş olsaydım, muhtemelen referans olarak o projeyi göz önünde alırdım. :)

Yorumlarınız için tekrardan teşekkür ederim.

micahmelnyk (author)2015-02-06

So a couple questions:

1) It looks like the MOSFET is used to turn off the battery when it is low voltage, but not sure why exactly you do that. What is the motivation here? And what is with the lowVolts ++ and lowVolts-- ? Is this just to have some ability to not have the battery shut off based on a random below threshold reading?

2) Why do you have a "batteryIn" variable, when it looks like it never changes?

3) Why is 3.3V connected to AREF?

carlos66ba (author)2015-01-19

No schematic? No references on where you get your values (fully charged alkaline batteries have close to 1.6 V). Why you need a 2.2 R resistor? What is the purpose of the MOSFET?

BurakTutal (author)carlos66ba2015-01-19

I am new here. I added the schematic on the post. You can check it.

You are right, fully charged alkaline batteries close to 1.6 V. But my professor said it to me.So I did it according to 1.5V. This is pretty simple to change.

2.2Ω (1 Watt) restistor gives ~500mA drain. I used it because of that reason. If you want, you can use another one.

The usage of the FET to stop discharging isn’t entirely obvious to everyone.

carlos66ba (author)BurakTutal2015-01-19

Thank you for the reply. My comment was to make the instructable better, and this is precisely what is happening! You still have to explain a bit more what all is doing: how is the MOSFET being controlled? Perhaps a link to the code that the arduino runs, etc. Without these instructions, it is very difficult for someone else to reproduce your results and/or learn something new.

Veda88 (author)2015-01-19

Is it correct that I am missing some steps?

BurakTutal (author)Veda882015-01-19

Like what? If you tell me the steps which you think that you are missing, I try to explain it clearly.

About This Instructable




More by BurakTutal:Arduino-wtv020-Sd-16P / Talking Distance MeterHow to make a Snowflake with PaperBattery Capacity Tester (Arduino)
Add instructable to: