author: Rajendra Bhatt - rajbex[pic]yahoo.com
Introduction
This project describes how to make a digital voltmeter using a PIC microcontroller. A HD44780 based character LCD is used to display the measured voltage. The PIC microconotroller used in this project is PIC16F688 that has 12 I/O pins out of which 8 can serve as analog input channels for the in-built 10-bit ADC. The voltage to be measured is fed to one of the 8 analog channels. The reference voltage for AD conversion is chosen to be the supply voltage Vdd (+5 V). A resistor divider network is used at the input end to map the range of input voltage to the ADC input voltage range (0-5 V). The technique is demonstrated for input voltage ranging from 0-20 V, but it can be extended further with proper selection of resistors and doing the math described below.
Circuit Diagram
Since the PIC port cannot take 20V input directly, the input voltage is scaled down using a simple resistor divider network. The resistors R1 and R2 scale down the input voltage ranging from 0-20V to 0-5V, before it is applied to PIC16F688’s analog input channel, AN2. A 5.1V zener diode connected in parallel between the port pin AN2 and the ground provides protection to the PIC pin in case the input voltage accidentally goes beyond 20V. The LCD display is connected in 4-bit mode, and the ICSP header makes the firmware development easier as you can reprogram and test the PIC while it is in circuit. When you are satisfied and want to transfer the circuit from the breadboard to a PCB or general-purpose prototyping board, you don’t need the ICSP header. The circuit diagram and the prototype built on a breadboard are shown below.
[pic]
Important: You need a regulated +5V supply for accuracy of the output. The ADC uses Vdd as the reference for conversion, and all computations are done with Vdd = 5V. You can get a regulated +5V using a LM7805 linear regulator IC.
Circuit made on breadboard