I think this question is best asked on concrete-ish terms, so, here it goes.
Let's say we have 4 wires, all with common ground:
A) ≈9V-20V, varying.
B) ≈3V-6V, varying.
C) A low frequency analog signal (<1kHz), which can vary from 0 to A.
D) In here, I need to output the analog signal from wire C, but translated from range 0-A to range 0-B.
Point of the circuit being that it should self adjust to always translate the signal from range 0-A to range 0-B, even if A, B or both change.
I'm basically stuck, any pointer or a suggestion would be appreciated.
Best Answer
Get an ADC. Set its analogue reference to be the voltage value on line A.
Get a DAC. Set its analogue reference to be the voltage value on line B.
Connect the ADC digital output with the DAC digital input.
Connect signal "C" to the ADC input.
Connect line "D" output to the DAC output.
Set both ADC and DAC for continual conversion (you might need a pulse generator).
If the "A" line range of 0 to 20 volts is too high for a particular ADC, then pot down to make 20 volts become 5 volts (for instance). Ditto the signal line "C". Same ratio of potting down.
If you can't get a suitable DAC that can have a reference input of 6 volts (line "B") then pot it down then, take the DAC output through an op-amp amplifier to restore to the value you need for line "D".