Sensing negative and out-of-range analog input voltages “simply”

Have you ever struggled to measure analog voltages outside of the 0-5v range of the Arduino Uno? While an op amp works well, sometimes, as shown below, a simple 3 resistor network, which is much less involved, is quite satisfactory. Consider a circuit where Vcc is the source for an offset voltage (5v) applied to the Analog input through the a voltage divider, R1, RL. The signal input (Vin) is also applied to the Analog input (Ain) through a resister R2. Since these circuits interact with each other, the calculation of resistor values to select a signal voltage (Vin) range that keeps the Analog input voltage range between 0-5v is not so simple. I have attached a detailed description of how to analyze this passive input conditioning network using Thevanin’s theorem. In short, using various combinations of 1K and 10K resistor, measurement of a broad range of negative and positive voltages is possible. Any comments?

The Range of Vin with Ain Limited 0 to 5 volts

Vcc=5v Vin when:
R1 R2 RL Ain=0v Ain=5
10 10 10 -5 10
10 10 1 -5 55
10 1 10 -0.5 5.5
1 10 10 -50 10
10 1 1 -0.5 10
1 1 10 -5 5.5
1 10 1 -50 55
1 1 1 -5 10

Passive Resistor Conditioning for Analog Input.pdf (468 KB)