Arduino Battery Monitor- Steps to Create a Battery Level LCD Indicator

You can use LEDs to create a simple Arduino battery monitor.  This simple setup lets you track your battery levels by checking an LED bar graph. Also, if you cannot access the LED Bar Graph …

Arduino Battery Monitor

You can use LEDs to create a simple Arduino battery monitor

This simple setup lets you track your battery levels by checking an LED bar graph.

Also, if you cannot access the LED Bar Graph for your college project, you can still use a series of LEDs, as we’ll illustrate. 

Check out this article for more insights into an Arduino battery monitor. 

Table of Contents

Why Monitor Battery Level?

Discharged and various level energy alkaline batteries infographic set. 

Discharged and various level energy alkaline batteries infographic set. 

If you’re accustomed to doing Arduino projects with a battery as the power source, you understand the hecticness of unprecedented battery drains. 

All batteries, no matter the size, feature a voltage threshold that, if you exceed it, can be detrimental to their battery life.

You also risk data loss if your battery runs out of power before you can save info on your microcontroller. 

Given these kinds of scenarios, you definitely wouldn’t want to exhaust the battery’s maximum output voltage levels.

Therefore, having an Arduino battery-level monitor is essential. 

Components Required

What is a LED Bar Graph?

A LED bar graph is typically a collection of LEDs (about 10).

It is commonly used as an indicator in industrial control panels and audio equipment applications. 

We can also use it to create an Arduino-based battery monitor. 

Therefore, you can create one with a series of LEDs if you do not have the bar graph.

Remember to follow the typical electricity rules when connecting them to the Arduino-Based Battery Level Monitor circuit. 

How Our Project Detects Battery Level

Battery Level. 

Battery Level. 

Any battery, regardless of whether it is the typical 12V or Li-Ion Battery, features a charge level.

And this is what the Arduino Battery Level monitor detects. 

When you connect your battery to this battery monitoring system, your Arduino board’s analog pin is the voltmeter. 

Noteworthy, a battery’s charge level is its voltage content.

Therefore, in this case, the Arduino will obtain the battery’s voltage value in analog form.

The system (a built-in Analog-Digital-Converter in Arduino) converts it to digital voltage values that the LED bar graph displays. 

The number of LEDs lit indicates the battery level at a given time.

For instance, if your indicator lights 7 LEDs out of 10, your battery is 70% full.

If only four are on at a time, the battery is 40% full. 

Project Circuitry

Check out the following schematic (circuit diagram) on how to connect your circuit. 

ADC Conversion Formula

Your Display will only show digital information. But in our project, the battery level is in analog form.

Hence, we need an Analog-Digital Converter (ADC) to convert the analog signal to a digital one that the Arduino can read. 

Luckily Arduino features a built-in analog-to-digital converter that you can activate, as we’ll explain below (check out the section on ‘Code Explanation’ below). 

The change to digital values is via the ADC conversion formula, as we’ll illustrate : 

ADC Calculator:

It will change analog signals in whole numbers and fractions to whole digital numbers that the LCD will display. 

Arduino Battery Monitor Code

Here is the Battery Level Monitor Code that you’ll run on the IDE to facilitate the display of the battery level value on the LCD. 

Code Explanation

We’re going to use the LCD Library in our battery-level display project. 

Also, it is imperative to define the Arduino Uno pins we’ll be using in this project.

In our case, we’ll use the analog pin (A4) as the code above to be the pin that will detect the battery voltage levels. 

Noteworthy, we want our values on the LCD in 2 decimal places.

Therefore we’ll include this in the code by having our values in float form.

Check out the code that illustrates this. 

Next, we must set up an array that indicates the pins we’ll include in our LED bar graph.

Here’s the code: 

Also, in this project, the analog pins and the LCD are typically output pins; we must also represent this in the code. 

Now our LCD is set and can display the battery level value.

But remember, we’re yet to set up an LED function to enable us to use the LED bar graph.

Check out the code. 

Our values are still analog at this juncture, and we need to convert them to a digital output format. 

As mentioned earlier, our Arduino has a built-in ADC.

Therefore, we need to incorporate the ADC formula into our code so that the LCD can display the battery power level values. 

Check out the formula and the code. 

Lastly, we must include the conditions defining the rules for controlling the LED bar graph.

Remember, the reference, in this case; the reference is the input voltage we’re obtaining from our designated analog pin (A4). 

Check out the conditions below.  

Applications of the Battery Monitoring Circuit

Here are some everyday devices where you’ll likely find this circuit. 

  • First, you’ll find it on your mobile phone or laptop. In these devices, it is responsible for keeping you informed of the battery levels so that you can recharge before depleting the charge. 
  • Also, the circuit is in your chargeable battery bank, which keeps track of the charge levels like in the aforementioned devices. 
  • Lastly, the circuit is imperative to track your car’s 12V lead battery. 


Are you looking for a practical project that is simple and fulfilling to create?

Look no further than the Arduino battery monitor project, which will help you design a system to monitor the battery level of virtually any battery power source. 

It’s easy to create, and it further aids you in tracking the charge levels of your favorite device.

Therefore, this setup will be handy whether it is robotics or a simple project requiring power-level displays.