Autorange Voltmeter

3.9K20

Intro: Autorange Voltmeter

I was given a broken 4-1/2 digit voltmeter, a classic style based on the ICL7135 integrated circuit. The power supply board was bad, it needed a common 5 volt supply, but needed a negative supply as well. I added a 555 based negative voltage generator, and got about -3.5 volts which was good enough according to the ICL7135 datasheet. However, the meter had only one input range, +/- 1.9999 volts which wasn't very useful.

To make the meter useful, I added range setting resistors (a voltage divider network) made up of series connected 9M, 900K, 90K, 9K, 900, and 100 ohm resistors salvaged from a dead Harbor Freight multimeter. The resistors are mostly surface mount types, except for the 9M resistor that was made of 1/4 watt resistors in series. Incidentally, I found the reason the Harbor Freight meter died- the 9K resistor was intermittent, causing erratic readings. I replaced it with 2ea. 18K surface mount resistors in parallel. The resistors were soldered to a small piece of perfboard.

The equation used to find the output voltage from the voltage divider is Vout = Vin x R2 / (R1 + R2). The R2 resistor is the value of resistors below the particular chosen Vout pick off point and ground. R1 + R2 is the total value of all the resistors in the voltage divider. Ranges become times 1, 0.1, 0.01, and 0.001 when using the values previously mentioned, so the possible voltage input ranges are +/- 1.9999, 19.999, 199.99, and 1999.9 volts for an output of +/- 1.9999 volts to the meter. I don't think it wise to put anything even near 1000 volts into this meter for safety's sake.

STEP 1: Construction


Reed relay contacts close to select the appropriate resistor divider pick off point for a particular range. I wanted an autorange feature; the ICL7135 has an over range and under range output, but the datasheet has no information on how these outputs could be used. After much experimenting, an Arduino was used to incrementally step up or step down the range relays; and the Arduino also activates the decimal point for each range, see Arduino sketch code.

It works pretty well, see video of autoranging action.