# How to measure voltage before a load

I want to measure voltage before a variable load. I recon I need some sort of divider and some amplifier to buffer the readout before handing it to the next stage (ADC pin of a MCU or another amplifer to be compared to some other value).

Is the following circuit technically correct?

Edit The term "before the load" maybe not true as the node R1 and R3 (load) are located at will have always the same potential regardless if R1||R2 are at the left side or right side of R3 ?

My application is to measure between 0 to 10 volts. The opamp must be rail-to-rail to measure 0volt? do I need to use a floating opamp that has -vcc and +vcc?

• It's not clear what you mean by "before" a load. The word "before" implies that you expect the potential at the load to be different from the potential at the source V1, which is not true. Please elaborate. Jun 27, 2023 at 12:22
• What range of voltages do you expect at the load? The input common mode range and output range of U1 should include those voltages, you may well need a 'rail2rail' opamp. Jun 27, 2023 at 12:26
• If the V1 is a low impedance voltage source, the circuit is correct. Jun 27, 2023 at 12:28
• @SimonFitch Thanks, I think it will not make sense before or after :) I was thinking it would be like a current source amplifier which should be either high or low side Jun 27, 2023 at 12:39
• @Neil_UK Thanks, I updated with more details. I am looking to measure 0V to 10V, I know The resistor divider should be chosen to translate that range to 0 to 3.3 in case of a 3v3 MCU. Jun 27, 2023 at 12:40

The circuit is not correct. The load will see the same voltage as the voltage rail, this means the voltage at R1 and R2 will be constant. If you want to measure the voltage of the load, you will need to change R1 or R2 to the load.

The load being in series with another resistor can present a challenge to measure the voltage if the load can't have a resistor in series with it. (For example: A microprocessor should not have a large series resistance, because it will drop the voltage on the microprocessor and cause a voltage drop on the microprocessor or brownout).

After you select your voltage divider, you must then find the voltage range of the divider.

Vout = Vin (R2/(R1+R2)) so if you replace R2 with the load you can calculate the voltage range of Vout with the min and max of the load.

Usually microprocessors need a 3.3V voltage range (or sometimes 5V), so you could use an attenuator (another voltage divider) to get the voltage range from 10V to 3.3V

If:

• V1, the voltage source, is really 0-10V (and not -0.3 to 10.6V)
• R1:R2 divides this to a level suitable for the micro (such as 10k/10k = 5.00V for 10.00V input) (assuming your micro is 5V)
• R4 is zero Ohms since this is a buffer configuration

Then it will likely work, assuming power to the opamp and MCU remain applied while the load is variable. But there are some caveats:

• If V1 and the opamp can be "on" while the micro should be off, the opamp output into the micro can cause it to fully power up.
• If V1 is really 10.6V, then Vopamp would be 5.3V, which could cause latch-up and damage the micro
• Ditto if R1:R2 is not an accurate ratio (due to tolerances, 10.00V in = 5.3V out.)
• If the load is a motor, what happens when V1 is suddenly removed? Answer: the motor shoots its stored current back at V1, potentially manifesting as hundreds of volts for a very short time = popped components.
• If the load has a lot of capacitance, then pulses or spikes (that you may want to measure) will be greatly reduced due to that capacitance.

My application is to measure between 0 to 10 volts. The opamp must be rail-to-rail to measure 0volt? do I need to use a floating opamp that has -vcc and +vcc?

If you use a rail-to-rail opamp with its Vcc=10.00v and Vee or Vss = 0.00V, then the output could go very close to the rails. I.e., 9.95V to 0.05V or so. Check the particular opamp datasheet carefully for exact values (might be represented as Vcc x 0.99 and Vss + (Vcc x 0.01) or similar.)

If you must measure from EXACTLY 0V to 10V, then you'll have to use opamp power rails going beyond these slightly, so say +11V and -1V. If a poorly-performing, non rail-to-rail opamp were used instead like the LM741, then you would have to go far beyond this, such as +16V and -6V.

... same potential regardless if R1||R2 are at the left side or right side of R3 ?

Correct. In a schematic, nodes always have zero resistance. In the real world, nodes always have some very small resistance, based on track/wire length and width. So it is common to assume track resistance is zero for all "signal" cases except where it matters. Track/wire resistance matters when talking about larger currents, even very fast spikes, where the small resistances will actually begin to drop some voltage at those large currents.)

You can use these values if you are using 3.3V supply. 2kohm R3 is simulating the loading effect on opamp. It has to be removed in real circuit.

Below is the wavefrom. red: Vload. Orange: opamp output. Vout = Vload/7.8

You don's need rail-to-rail opamp. Remember to use single supply opamp (like LM324 or LM358). They can handle GND level input signle. And they are cheap.