• Skip to main content
  • Skip to primary sidebar

Homemade Circuit Projects

Need circuit help? Post them in the comments! I've answered over 50,000!

Blog | Categories | About | Contact | Calculators-online
You are here: Home / Meters and Testers / Arduino based DC Voltmeter Circuit – Construction Details and Testing

Arduino based DC Voltmeter Circuit – Construction Details and Testing

Last Updated on January 1, 2019 by Swagatam 10 Comments

In this post, I will show how to construct a DC voltmeter using Arduino where the readings are displayed in 16x2 LCD.

 
 
The proposed voltmeter design can read up to 30V with tolerance of +/- 0.5 volt. We are going to see how this setup functions and explore other possibilities we can accomplish other than measuring voltage.

This project is fairly simple, even beginners can accomplish with ease, but care must be taken while prototyping the circuit as we are going to apply external voltage, any misconnection to Arduino can lead to fatal damage to your board.

Let the warning be a side, let’s explore how it functions.

Here, we are using analogue to digital conversion process. Voltage from any source is analogue function; the readings displayed on 16x2 LCD is a digital function.

The challenge is converting those analogue functions to digital function. Fortunately, Arduino has functionality to read analogue functions and convert them to discrete function.

Arduino microcontroller equipped with 10-bit analogue to digital converter (ADC). This means Arduino can read 2^10=1024 discrete voltage levels.

In other words, the voltage applied to analogue pin of Arduino is sampled 1024 discrete voltage levels with respect to a reference voltage; the sampled value gets displayed in the LCD. This is the principle behind this voltmeter or almost any digital voltmeter.

However, the applied external voltage is not directly measured by Arduino. The voltage is step down with help of voltage dividers and some math is done in the program in order to get actual voltage reading.

How it Works

The circuit consists of two resistors, one LCD display and an Arduino which is brain of the digital voltmeter. The two resistor acts as voltage divider, the node of the divider is connected to analogue pin # A0 of the Arduino, which reads the input voltage. Ground connection is established between Arduino and external voltage source.

The minimum voltage which can measure by this voltmeter is 0.1V, this threshold is set in the program, so that it reads 0.00 volt after disconnecting the voltage source and does not display readings due to static charge around the measuring probe.

Author’s prototype: 

Arduino based DC Voltmeter Test Results

Don’t reverse the polarity while measuring the voltage, it won’t harm the circuit but, it does not read any voltage and displays 0.00 V, until you correct the polarity. Adjust the contrast of LCD display to optimum level by rotating the potentiometer.

Make sure you don’t apply any voltage source which could spike higher than 30V; it may damage your Arduino board. Technically you can bump up the maximum measuring voltage of this circuit by changing resistor values and modifying the program, but for the illustrated setup 30V is limit.

For accurate reading, choose fixed resistors with minimum tolerance value, resistors play an important role in calibrating the voltage reading.

Circuit diagram:

 

Arduino based DC Voltmeter Circuit

The other possibility of this voltmeter is that we can modify the program to automate some tasks.

For instance, detect full battery voltage and disconnect the battery from its charger or disconnect battery if voltage goes below preset voltage level and so on, these task can be accomplished even without LCD display. However this is subject of another article.

Program:

//--------Program developed by R.Girish---------//
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
int analogInput = 0;
float vout = 0.0;
float vin = 0.0;
float R1 = 100000;
float R2 = 10000;
int value = 0;
void setup()
{
pinMode(analogInput, INPUT);
lcd.begin(16, 2);
lcd.print("DC VOLTMETER");
Serial.begin(9600);
}
void loop()
{
value = analogRead(analogInput);
vout = (value * 5.0) / 1024;
vin = vout / (R2/(R1+R2));
if (vin<0.10) {
vin=0.0;
}
lcd.setCursor(0, 1);
lcd.print("INPUT V= ");
lcd.print(vin);
delay(500);
}
//--------Program developed by R.Girish---------//

Please check the readings with a good voltmeter/multimeter.

You'll also like:

  • 1.  Satellite Signal Strength Meter Circuit
  • 2.  How to Make a Digital Voltmeter, Ammeter Module Circuits
  • 3.  Use your PC like an Oscilloscope
  • 4.  Semiconductor Tester Circuit [LED, Transistor, SCR Tester]
  • 5.  Match Transistor Pairs Quickly using this Circuit
  • 6.  How to Check a MOSFET Using a Digital Multimeter

About Swagatam

I am an electronics engineer with over 15 years of hands-on experience. I am passionate about inventing, designing electronic circuits and PCBs, and helping hobbyists bring their projects to life. That is why I founded homemade-circuits.com, a website where I share innovative circuit ideas and tutorials. Have a circuit related question? Leave a comment.... I guarantee a reply!

Previous Post: « Bluetooth Car Ignition Lock Circuit – Keyless Car Protection
Next Post: Door Security Alarm Circuit for Alerting if Door was Opened »

Reader Interactions

Comments

  1. Suresh says

    May 4, 2022 at 1:34 pm

    Dear Swagatham,

    As usual, a very useful circuit idea.
    I want to setup this to read 4*12v lead acid battery (actual voltage could be about 60v). What should be the resistor values and what needs to changed in the program ?

    in a real setup I need the voltage to be transmitted using bluetooth from the 2nd floor to ground floor and displayed.

    once again thank you very much for presenting this idea.

    Reply
    • Swagatam says

      May 4, 2022 at 2:09 pm

      Thank you Dear Suresh,

      I understand that you want to read 60 V using this Arduino circuit, however, as you can see the maximum limit of this circuit is only 30 V, therefore it may not be possible to use 60 V with this circuit set up.

      Reply
      • Suresh says

        May 4, 2022 at 3:59 pm

        Dear Swagatham,

        Thanks for the reply. I intend to work on this idea.

        Reply
        • Swagatam says

          May 4, 2022 at 5:57 pm

          No problem Suresh, I appreciate your interest.
          All the best to you!

          Reply
  2. reparatou says

    November 9, 2020 at 11:50 pm

    hello! is there any way to build a current indicator with LEDs like vu meter , somthing with OP-amps , and indicat the current with LEDs , like 0.1A, 0.2A,,, 0.5A, 1A, 1.5A , 2A , 2.5 ……..10A

    Reply
    • Swagatam says

      November 10, 2020 at 10:04 am

      That’s easily possible using the IC LM3915. Just add a current sensing resistor across its pin5 and ground, as the potential difference across the resistor rises, it will be reflected through the 10 LEDs connected across the ICs output pins.

      Reply
      • reparatou says

        November 11, 2020 at 12:04 am

        thank you 🙂

        Reply
  3. nikhiltricks says

    April 10, 2017 at 12:13 pm

    hi swagatam,
    i am working on a industrial product of battery voltage data logger.
    I have designed some circuits for that. but i have doubts in that circuit so could you please help me regrading this project.

    if you could just send me your mail id then i can tell you the concept and work done by me.
    my mail id is [email protected]

    Reply
    • Swagatam says

      April 10, 2017 at 2:52 pm

      Hi Nikhil, I can surely look into it and try my best to help you out, but I would be willing to do that only if I am allowed to share it in this website later on, I hope you won't mind it.

      My email is hitman2008

      @ live.in

      Reply
  4. nikhiltricks says

    April 7, 2017 at 1:35 pm

    hi swagatham,

    Reply

Need Help? Please Leave a Comment! We value your input—Kindly keep it relevant to the above topic! Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

Subscribe to New Circuit Ideas

Categories

  • Arduino Projects (87)
  • Audio and Amplifier Projects (132)
  • Automation Projects (17)
  • Automobile Electronics (101)
  • Battery Charger Circuits (82)
  • Datasheets and Components (102)
  • Electronics Theory (143)
  • Free Energy (37)
  • Games and Sports Projects (11)
  • Grid and 3-Phase (19)
  • Health related Projects (25)
  • Home Electrical Circuits (12)
  • Indicator Circuits (14)
  • Inverter Circuits (87)
  • Lamps and Lights (142)
  • Meters and Testers (69)
  • Mini Projects (46)
  • Motor Controller (64)
  • Oscillator Circuits (27)
  • Pets and Pests (15)
  • Power Supply Circuits (108)
  • Remote Control Circuits (50)
  • Security and Alarm (64)
  • Sensors and Detectors (100)
  • Solar Controller Circuits (59)
  • Temperature Controllers (42)
  • Timer and Delay Relay (49)
  • Transmitter Circuits (29)
  • Voltage Control and Protection (37)
  • Water Controller (36)

Calculators

  • Battery Back up Time Calculator
  • Capacitance Reactance Calculator
  • IC 555 Astable Calculator
  • IC 555 Monostable Calculator
  • Inductance Calculator
  • LC Resonance Calculator
  • LM317, LM338, LM396 Calculator
  • Ohm’s Law Calculator
  • Phase Angle Phase Shift Calculator
  • Power Factor (PF) Calculator
  • Reactance Calculator
  • Transistor Astable Calculator
  • Transistor base Resistor Calculator
  • Voltage Divider Calculator
  • Wire Current Calculator
  • Zener Diode Calculator
  • Filter Capacitor Calculator
  • Buck Converter Calculator
  • Boost Converter Calculator
  • Solar Panel, Inverter, Battery Calculator
  • Wire Current Calculator
  • SMPS Transformer Calculator
  • IC SG3525, SG3524 Calculator
  • Inverter LC Filter Calculator

People Also Search

555 Circuits | 741 Circuits | LM324 Circuits | LM338 Circuits | 4017 Circuits | Ultrasonic Projects | SMPS Projects | Christmas Projects | MOSFETs | Radio Circuits | Laser Circuits | PIR Projects |

Recent Comments

  • Swagatam on Simple Delay Timer Circuits Explained
  • Swagatam on The Role of Inductor Coil in SMPS
  • Swagatam on 7 Modified Sine Wave Inverter Circuits Explored – 100W to 3kVA
  • Swagatam on 7 Modified Sine Wave Inverter Circuits Explored – 100W to 3kVA
  • Victor on 7 Modified Sine Wave Inverter Circuits Explored – 100W to 3kVA

Company

  • Privacy Policy
  • Cookie Policy
  • About Me
  • Contact
  • Disclaimer
  • Copyright
  • Videos
  • Sitemap

Social Profiles

  • Twitter
  • YouTube
  • Instagram
  • Pinterest
  • My Facebook-Page
  • Quora
  • Stack Exchange
  • Linkedin
  • © 2025 · Swagatam Innovations