LCD Voltmeter based on Arduino

This post is about building a simple 0-5V 3 digit voltmeter using Arduino UNO compatible board and 4×20 LCD display. This design should also work on all similar boards, I’ve tested it on Arduino Mega and UNO boards.  No additional components are required. The Arduino sketch for this project may look different from what you can find in various Arduino forums, because I’ve written my own functions for interfacing the LCD display and converting the analog value to BCD format in order to display it correctly. More detailed explanation can be found in attached code at this link. Also voltmeter design based on PIC16F877 microcontroller is available here. Voltmeter schematic diagram is shown next.

LCD Voltmeter based on Arduino Schematic

Originally I planned to translate the 10 bit number representing the input voltage with 4 digits number, however the last digit in current implementation is not very stable probably because the reference voltage for ADC conversion is taken from the same supply that is connected to the board. So I’ve disabled the last digit and it’s not shown on the LCD. Averaging a number of samples should produce more stable result.

LCD-Voltmeter-based-on-Arduino-Prototype-Board

As usual here is a short video showing a working voltmeter prototype. I’ve replaced an LCD module with compatible VFD display in order to get more contrast readings. You can add a simple resistor divider to analog input A0 to measure higher voltages.