BMS , State of charge and estimate health battery lithium with Arduino

Digital battery management (BMS : battery management system), makes it easy to estimate the state of charge and battery health quite easily for certain lithium battery technology. The final objective is to know the remaining travelable distance of an electric vehicle despite the aging of the battery (state of health) ? As well as make a real-time battery diagnosis.

But many questions are on hold to make the instrumentation of a battery in real time: How to make the diagnosis of a lithium battery? What resources should the processor have? What are the methods to know the state of charge and the state of health (SOH) of a battery or each element? What is the number of measurement samples for previous diagnoses ?

The following article which is not fully finalized and not yet published uses a Mega map and explains the methods and program

The ISIS file of the simulation which allows to test the program is downloadable on the following link

Arduino program is download end topic in attachment

conclusion and perspectives:

Just increase the variables to have a BMS 13 elements series and menu management
A hall-effect speedometer (odometer) should be added to the program to measure speed and distance
Health status data should be stored for each cycle
Other battery health methods (SOH: state of health) should be tested from this programming base based on battery chemistry
Data recording in an SD card and external communication for maintenance

instrumentation_V1.ino (8.56 KB)