Quieres un rango de señal de 0V a 5V. No todos nosotros :-)? Vamos a ir a por un enfoque diferente y a ver a dónde nos lleva.
Punto de partida: más barata y más sencilla solución.
Que sería una resistencia en serie para crear un divisor de voltaje. Ese es el mínimo absoluto. Me he dado cuenta de que la gente no se dé que resistor de mucho pensar, el que acaba de recoger una buena ronda de valor como 10k\$\Omega\$. Pero me he encontrado con que hay un valor óptimo para este.
![enter image description here]()
La curva muestra la diferencia de tensión entre el mínimo y el máximo de la lectura (9k\$\Omega\$ y 20k\$\Omega\$ resp.) como una función de la resistencia en serie (en k\$\Omega\$). Véase, en efecto, se tiene un máximo. Que es fácil de encontrar si usted recuerda que
\$ \left(\dfrac{f(x)}{g(x)}\right)' = \dfrac{f'(x)\cdot g(x) - f(x) \cdot g'(x)}{g^2(x)} \$
La diferencia \$V_{MAX}\$- \$V_{MIN}\$ tiene un extremo para
\$ \dfrac{d}{d R_X} \left(\dfrac{R_{MAX}}{R_{MAX} + R_X} - \dfrac{R_{MIN}}{R_{MIN} + R_X}\right) = 0 \$
La solución para que \$R_X\$ da
\$ R_X = \sqrt{R_{MIN} \cdot R_{MAX}} \$
Una belleza!
En nuestro caso la resistencia en serie será 13.42 k\$\Omega\$, esto se puede verificar en el gráfico. La colocación de las resistencias entre 0V y +5V esto nos dará un rango de salida de [2V, 3V]. Ese es el rango máximo que se puede obtener con 1 resistencia(*).
Es eso suficiente? El Arduino tiene un 10-bit ADC, por lo que esta gama le dará un rango de 200 niveles discretos. Que debe dar la suficiente precisión para un DIY sensor. Así que no hay otros componentes como opamps necesario.
(*) El aceptado respuesta da un 1.9 V gama, pero tiene el mal de ecuaciones. Es imposible obtener un mayor rango de 1V con 1 resistencia y solo +5V de alimentación.