Bueno, voy a tratar de aclarar lo que dije antes
Primero pongamonos de acuerdo en la forma en que trabaja el ADC
En la imagen de abajo esta el circuito del que hablaba para amplificar, no se bien como obtiene guille1234 sus 1.7V porque no dio detalles de su circuito, pero es lo de menos.
El punto es que el quiere mostrar 3.5A cuando tenga 1.7V a la entrada del ADC.
Si en tu microcontrolador pones VDD como referencia para el ADC, le estas diciendo que compare la tension de entrada con VDD y te dara un valor de 10bits que representa esa relacion, veamoslo con numeros.
El ADC tiene 10 bits => puede representar 1024 valores posibles (2^10)
Entonces si VDD=5V el numero mas chico que puede representar el ADC es 5V/1024 = 4.8mV
Es decir, si el ADC devuelve el numero 512 es porque a la entrada tiene 2.5V (512*4.8mV)
Se dice que la resolucion de tu conversor es de 4.8mV.
Hasta aca todo bien. Ahora, si el valor maximo que vas a medir es de 1.7V, el maximo numero que el ADC necesita para representarlo es 348, por lo que estas desperdiciando todos los demas.
Fijate que si la referencia del ADC fuera 1.7V, la resolucion seria 1.7V/1024 = 1.6mV. Es decir que ahora el ADC puede distinguir valores 3 veces mas pequeños que cuando la referencia estaba en 5V.
Para que quede más claro
Supongamos que tenes la referencia en 5V y tenes 1V en la entrada => el ADC te dara el valor 205.
si ahora tu entrada varía a 1.0016V el ADC no ve la variacion y te da el mismo valor 205
si continua variando 1.0032 => 205
1.0048 => recien aca (con suerte) el ADC te dara 206
mientras que si tu referencia hubiese estado en 1.7V, en la primera variacion ya te hubiese arrojado el valor 206.
Pueden parecer variaciones muy pequeñas, pero si la señal que quieres medir es de por ejemplo 50V debes atenuarla para poder leera con el pic ya que soporta 5V como maximo. Luego, unos pocos mV en el ADC pueden estar representando 1 o mas voltios.
Volviendo al problema, una solucion rapida sería poner la referencia del micro a 1.7V y todos felices, de hecho esto se puede hacer, yo no lo hice nunca, y por lo que lei en este foro, trae muchos problemas de estabilidad.
Entonces?
Entonces amplificamos la maxima tension de entrada (1.7V) para que cubra todo el rango del ADC (5V).
Esto lo puedes hacer de varias maneras, yo propongo el circuito de abajo, porque es facil, y porque no necesitas fuente negativa.
Es un AO configurado como "sumador no inversor", en esta configuracion la tension de salida Vo se relaciona con la de entrada Ve segun la siguiente ecuacion
Vo=Ve(1+R2/(R3+Rv1))
entonces, si quieres tener 5V en la salida cuando tengas 1.7V en la entrada, de la ecuacion anterior puedes ver que te queda R2=1K8 y R3+Rv1=947. Debes adoptar el valor de una de las resistencias y luego sacas el valor de la otra.
En la imagen se ve que con 1.7V en la entrada tengo 5V en la salida.
Ahora aprovecho toda la potencia del ADC, solo debo tener en cuenta que cuando el ADC arroje el valor 1024 para mi significa 1.7V, y si arroja 512 seran 0.85V. Y si mi entrada varia en 1.6mV lo voy a detectar.
Resumiendo, debes multiplicar el valor que arroje el ADC por 0.0016 para obtener el valor correcto de la tension.
Para el caso que plantea guille1234 el quiere obtener 3.5 cuando tenga 1.7V, o sea que debe multiplicar lo que arroje el ADC por 0.0034 (3.5/1024)
Faltaria agregar una resistencia de 1K5 a la salida del AO directamente al ADC del micro, para limitar la corriente de entrada
Una ventaja que tiene esta configuracion es que puede absorver los errores propios de cualquier montaje, en la siguiente imagen varie el valor de la resistencia de 1 OHM a 1.4, es decir, introduje un error del 40%. Puede parecer mucho error, pero hablamos de 400mOhm. Entre la tolerancia de la R, mas contactos, mas pistas, mas la cola del diablo, esto puede pasar, y aun con menos, la salida se irá por encima de 5V y puede quemar el micro.
Por supuesto que se ponen protecciones para que esto no pase, pero mejor prevenir que curar.
Volviendo al tema, a pesar del error del 40%, moviendo el preset volvi a llevar la salida a 5V y listo para funcionar.
Aca esta el circuito con el error en la resistencia.
Bueno, espero que haya quedado un poco mas claro.
Por supuesto que esto se puede mejorar mucho (siempre se puede) pero es una buena manera de aprovechar al maximo el ADC, sin demasiadas complicaciones.
Quiero dejar algo en claro. Fer_TACA en el post anterior propuso una manera muy sencilla de solucionar el problema, no es mi intencion venir a complicar las cosas solo porque si, Fer_TACA propone sencillez sacrificando resolucion (20mV), yo propongo aprovechar mejor los recursos logrando 1.6mV de resolucion (nada es gratis, comlique un poco las cosas).
SIEMPRE si la solucion mas sencilla sirve, esa es la mejor.