Talking Differential Input Voltmeter

Another talking voltmeter using the Arduino Nano. This one will tell you the polarity and if the voltage is AC.

Similar projects worth following
This voltmeter uses mid-point biasing and differential inputs to isolate both probes from ground - a technique that means that you do not have to worry about the polarity of the probes. It also allows you to measure AC voltages without mode changing.
The voltmeter will announce the voltage in units and tenths and announce whether the voltage is positive or negative with respect to the probe polarity and whether the voltage is AC.
The total input resistance is about 1Meg Ohms.

Have you ever put your voltmeter probes into a tight component layout and turned your head to read the display only to have a probe slip?   You hear that little "tick" or see the smoke and know that you have just blown your circuit to oblivion.

With a talking voltmeter, you do not have to look at the display.

This voltmeter uses a Nano but almost any MCU with multiple ADC pins could be adapted (with appropriate software changes of course).

The technique uses a voltage divider for each probe.  Instead of being referenced against ground, each divider is referenced against a common virtual ground.  It is, essentially, an AC meter that can handle frequencies down to 0Hz.

This meter is not intended as a precision device but as a handy tool to make life easier on the workbench. 

Following the circuit:-

A rectifier bridge is used to protect against reverse polarity power but it can also allow for the provision of AC power.

The Nano is powered via its VIN pin.

Two 4K7 resistors in series, powered from the Nano 5V pin are use to form the virtual ground.

Two dividers formed by 47K and 470K Ohm resistors send divided probe voltages to the two ADC pins.

Provision is made for a VS1838 IR receiver and I2C but they are not used at this time.

The DFPlayer mini is powered via its own LM317 regulator to the recommended 4V2.  The main reason for a separate regulator is to prevent power supply fluctuations (motorboating) when the DFPlayer draws surges of current.

The SD card in the DFPlayer has mp3 files containing voice recordings of all the words needed to be spoken.  In accordance with the way the DFPlayer works, each filename is prefixed by a four digit number which is the way each file is referenced in the software.

The software:-

Pretty simple really.

Each ADC pin is read multiple times, each reading is converted to volts and recorded in two arrays.

Each array entry is compared with the related other and checked for volts and polarity.

The maximum differential value is processed.

If the polarity changes during the reading sequence, the voltage is interpreted as being AC and the maximum voltage is converted to (roughly) RMS.   NOTE:  If the frequency of an AC voltage synchronises with the software timings, it is possible that the meter could erroneously report DC but 50-60Hz is no problem.  

To keep noise to a minimum, the voltage must be above 0.1Volts before the software goes to the "speaking" process.

The speaking process determines the unit value of the voltage and calls the DFPlayer to play the appropriate file or the zero file.  It then calls for the file with the word "point".  Then it determines the decimal or zero value and calls for that file followed by the word "volts".  It then calls for the appropriate polarity word file.

The meter will then wait a short pause before starting a new cycle.


Schematic Diagram for talking VM

JPEG Image - 412.81 kB - 10/12/2020 at 06:11



Fritzing file for talking VM

fzz - 52.34 kB - 10/12/2020 at 06:03



Arduino code for talking vm

ino - 4.83 kB - 10/12/2020 at 01:53


Voice files for Talking VM

x-zip-compressed - 811.85 kB - 10/12/2020 at 01:51


  • 1
    Step 1

    The voice files should be placed in a folder named "mp3" in the root of the SD card.

View all instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates