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.
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.