I am trying to make a voltage V1 in the range of 0-5V limit an output voltage Vo, while another voltage V2, also in the range of 0-5V, proportionally controls it. For example, if the voltage V1 measures 2.5V, it will limit the output voltage to 0-2.5V, whereas the voltage V2 measures 2.5V as well (50% of its maximum voltage), resulting in the final output voltage Vo being 1.25V (50% of V1). The voltage Vo from this circuit will only be used as a signal for another circuit. Any idea on how to solv this? I was trying to use op-amps, but without success.

  • \$\begingroup\$ 1/2 × 1/2 = 1/4 \$\endgroup\$
    – jsotola
    Jan 29 at 1:28
  • \$\begingroup\$ A full 4Q multiplier can be had with two MC1496 and an opamp. Some offset adj will be needed, I suspect. \$\endgroup\$ Jan 29 at 4:15

2 Answers 2


For that to work you would need a multiplier or some equivalent circuit.

An analog multiplier such as AD633 will output the product of two input voltages scaled by 1/10. Such parts are relatively expensive compared to op-amps.

So if you input 0-5V on each input, the maximum output would be 2.5V and you would need a gain of 2 in addition. The minimum supply voltages for this to work will vary by the multiplier chip but you might need +/10V or something like that.

You could also do it digitally with an MCU with built-in ADC if the speed of response requirement is not too fast. Some MCUs have a DAC and most have PWM output so the additional hardware would be minimal.

Another way that does not involve a multiplier chip or MCU would be to chop one voltage by a varying duty cycle depending on the other voltage (0% for 0V in and 100% for 5V in) and then filter and buffer the output.

Note: Limiting one voltage by another is relatively easy and cheap to do with op-amps, diodes and resistors, but what you actually want to do (by your description) is to map one voltage range onto another.


You need to think of these voltages as between 0 and 1 times their maximal voltage.

Then the result simply becomes the product of both voltages (times the maximum voltage), according to your description.

That also means that the roles of these two voltages are interchangeable, by the way.

You hence need to build a multiplier.

That's hard to do in analog electronics (it really is!), but easy in digital.

So, building a Gilbert cell, and running it until it's acceptably linear in your range of interest, making sure it's either at a sufficiently stable temperature or temperature-self-compensating, and using that to multiply the two voltages, would be the analog way to go. You'll need to build opamp buffers, or rather voltage-controlled current sources, out of two opamps, transistors, a couple capacitors, because a Gilbert cell multiplies currents, not voltages.

Or, you buy a cheap microcontroller with two ADC channels, add an RC input filter for each input signal (anti-aliasing/noise filter), and an RC output filter to a Gpio pin (reconstruction filter, converts pwm to voltage), and a decoupling capacitor. Eight components, giving you a highly linear multiplier, once you write the few lines of code to read the ADC, multiply the two values, and use the product as setting for the pwm that you output.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.