{"id":3637,"date":"2021-05-27T05:18:42","date_gmt":"2021-05-27T12:18:42","guid":{"rendered":"https:\/\/www.cloudacm.com\/?p=3637"},"modified":"2021-09-10T06:27:08","modified_gmt":"2021-09-10T13:27:08","slug":"battery-health","status":"publish","type":"post","link":"https:\/\/www.cloudacm.com\/?p=3637","title":{"rendered":"Battery Health"},"content":{"rendered":"<p>This post will be covering how to determine battery health using a number of methods. It will progress through each of these methods, highlighting some benefits and drawbacks.<\/p>\n<p>One of the easiest ways to test a battery is whether it will power a device or not. Using a voltmeter will provide how much potential is left in a battery. Although these methods are simple, they fail to provide how much life is left in the battery. This can be problem if reliability is a factor.<\/p>\n<p>Measuring internal resistance is another method that uses both a voltmeter and a known load. This video provides more details on the process and the reasoning behind it.<\/p>\n<p><iframe loading=\"lazy\" title=\"18650 Li-ion Internal Resistance Explained &amp; Measured\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/av38iBxcOgQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p>The key takeaway from this is that a baseline should be established. Having an internal resistance value without its relevance provides little in the way of knowing a battery&#8217;s usefulness. Measuring a new unused battery, or referencing its data sheet will provide some baseline, but the extent is still unknown without some more information.<\/p>\n<p>Measuring discharge curves on a load will provide a more complete picture of battery health. The downside of this is the time it takes to take the measurement. If the battery is non-rechargeable, this process will consume the battery.<\/p>\n<p>In this example, an Arduino Uno was used to measure the discharge curve of 4 LiFePo4 cells. Each cell is below the 5 volt limit of Uno analog pins and they were discharged through a fixed value load. Here is the code used.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\">ReadAnalogVoltage\r\nReads an analog input on pin 0, converts it to voltage,\r\nand prints the result to the serial monitor.\r\nGraphical representation is available using serial plotter (Tools &amp;gt; Serial Plotter menu)\r\nAttach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.\r\n*\/\r\n\r\n\/\/ the setup routine runs once when you press reset:\r\n\r\nvoid setup() {\r\n\/\/ initialize serial communication at 9600 bits per second:\r\nSerial.begin(9600);\r\nSerial.print(\"CellOne\");\r\nSerial.print(\",\");\r\nSerial.print(\"CellTwo\");\r\nSerial.print(\",\");\r\nSerial.print(\"CellThree\");\r\nSerial.print(\",\");\r\nSerial.println(\"CellFour\");\r\n\r\n}\r\n\r\n\/\/ the loop routine runs over and over again forever:\r\n\r\nvoid loop() {\r\nint CellOne = analogRead(A0);\r\nint CellTwo = analogRead(A1);\r\nint CellThree = analogRead(A2);\r\nint CellFour = analogRead(A3);\r\n\/\/ Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):\r\nfloat CellOneVolt = CellOne * (4.93 \/ 1023.0);\r\nfloat CellTwoVolt = CellTwo * (4.93 \/ 1023.0);\r\nfloat CellThreeVolt = CellThree * (4.93 \/ 1023.0);\r\nfloat CellFourVolt = CellFour * (4.93 \/ 1023.0);\r\n\/\/ print out the value you read:\r\nSerial.print(CellOneVolt);\r\nSerial.print(\",\");\r\nSerial.print(CellTwoVolt);\r\nSerial.print(\",\");\r\nSerial.print(CellThreeVolt);\r\nSerial.print(\",\");\r\nSerial.println(CellFourVolt);\r\ndelay(1000);\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>The results can be plotted to give a visual of how each cell stacks up.<\/p>\n<p><a href=\"https:\/\/www.cloudacm.com\/wp-content\/uploads\/2021\/05\/Global-Readings.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3638 size-large\" src=\"https:\/\/www.cloudacm.com\/wp-content\/uploads\/2021\/05\/Global-Readings-1024x468.png\" alt=\"\" width=\"640\" height=\"293\" srcset=\"https:\/\/www.cloudacm.com\/wp-content\/uploads\/2021\/05\/Global-Readings-1024x468.png 1024w, https:\/\/www.cloudacm.com\/wp-content\/uploads\/2021\/05\/Global-Readings-300x137.png 300w, https:\/\/www.cloudacm.com\/wp-content\/uploads\/2021\/05\/Global-Readings-768x351.png 768w, https:\/\/www.cloudacm.com\/wp-content\/uploads\/2021\/05\/Global-Readings-590x270.png 590w, https:\/\/www.cloudacm.com\/wp-content\/uploads\/2021\/05\/Global-Readings.png 1045w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Taking internal resistance measurements over time could also be applied, although not demonstrated here.<\/p>\n<p>Although this process might be overkill for the average consumer, large scale or mission critical applications might require this.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This post will be covering how to determine battery health using a number of methods. It will progress through each of these methods, highlighting some benefits and drawbacks. One of the easiest ways to test a battery is whether it will power a device or not. Using a voltmeter will provide how much potential is left in a battery. Although these methods are simple, they fail to provide how much life is left in the battery. This can be problem&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/www.cloudacm.com\/?p=3637\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-3637","post","type-post","status-publish","format-standard","hentry","category-rd"],"_links":{"self":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts\/3637","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3637"}],"version-history":[{"count":3,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts\/3637\/revisions"}],"predecessor-version":[{"id":3808,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=\/wp\/v2\/posts\/3637\/revisions\/3808"}],"wp:attachment":[{"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3637"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3637"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cloudacm.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3637"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}