I have a fuel tank sensor that reports the remaining fuel with a resistance between 10 ohms (empty) and 180 ohms (full). I want to read this value using the Analog In of an Arduino (or ADS1115, not a big difference). The voltage range of the digital input is 0-5V. The obvious solution I came up with is the following:
simulate this circuit – Schematic created using CircuitLab
Now this has two big problems: First, the measured range is only between 5V/190 * 180 = 4.7V and 5V/20 * 10 = 2.5V, which uses less than half of the resolution of the ADC. And second, when the tank is empty, the resistance chain has only 20 ohms, resulting in a 250mA leak current. If my math isn't completely rusted, using a larger value for R1 solves problem two, but worsens problem 1.
How do I read the value of the sensor, so that the range of the analog in has the best possible resolution, and avoid heating everything up?
Notes:
- It appears that the sensor must measure to ground, so one end must be at GND. If helpful, this could eventually be relieved.
- I do have a bunch of resistors, capacitors and even transistors available if that helps. I do not have any op-amps (and getting one would be difficult at this time).