Analog Signal Scaling

Taming an unruly analog signal into a more manageable size.

Timespan: December 2020

Published: 2020-12-12

Mapping analog voltages between two rails

This webpage is the live calculator I made for the analog scaling problem I highlighted in this blog post. It solves the problem of moving an analog signal within one voltage range to another voltage range with one op-amp.

Here, an example is set up scaling ±15V sensor output to 0-5V Arduino/microcontroller analogRead-able values.

Circuit setup

Vin Ranges: Low rail: V
High rail: V
Desired Vout Range: Low rail: V
High rail: V


Vref: V
R2/R1 ratio:

Practical Implementation:

To find real-world resistors that create this reference voltage or match this resistor ratio, you can visit this other calculator, which I find invaluable.

Happy scaling!

Update 7/11/21

I've used this calculator several times since I initially made this page, which makes it a success in my eyes. But I have had troubles selecting real components to make the actual circuit. The Vref is off by a few mV or the ratio is sorta right, but it's hard to tell how close is close enough by the numbers alone.

This update adds the reverse calculation of output voltage rails given the input voltage rails, Vref, and resistor ratio of the real components you've got to give you an idea of how accurate the output rails will be.

Vin rails: Low rail: V
High rail: V
Vout rails: Low rail: V
High rail: V
Vref: V
R2/R1 ratio: