In this project you will develop firmware for an auto-ranging DC voltmeter based on the Arduino Nano platform and analog hardware. To avoid hardware and wiring errors, the entire project will be developed on Proteus VSM with ideal components. In automatic mode, the voltmeter automatically sets the appropriate range to display the greatest resolution without exceeding the range of the display. In manual mode, the user may press the RANGE+ and RANGE– buttons to select the range. The display shows an overload if the voltage being measured is greater than the upper limit of the chosen range. Manual / Automatic mode is chosen by pressing the MAN/AUTO button to toggle modes.
The default state for startup is all analog switches open except the 200V range switch
closed. This prevents unexpected high voltages from reaching the amplifier input.
Voltmeter measurements are considered valid only when a single switch is closed and
the others are open.
Any transition on the resistor selection outputs must be make-before-break. This
prevents unexpected high voltages from reaching the amplifier inputs. For example,
transitioning from the 200V to the 20V range consists of first setting the 20V range
switch bit HIGH, then setting the 200V range switch bit LOW. Measurements are
considered invalid during the