Problema con lectura de Resistencia con analog input

Hola, estoy tratando de hacer un ohmetro y no logro que me de un resultado en ohm correcto.

+1.8v |--------(R1 10K)--------- |------------(R2 = resitencia a leer)------------->GND
|
Analog input

Las lecturas de valor de voltaje dan perfecto.

Esta es la formula que utilizo para el calculo de la resistencia:

Vin = 1.8
Vout = valor leido
R1 = 10000

resistencia = ( Vout / ( (Vin-Vout)/R1 ) )


El tema es que los valores obtenidos no son los correctos hay una pequena diferencia del valor real


Usando R2 de 1K

lee resistencia = 11844 y voltaje = 0.1888

Usando R2 de 10K

lee resistencia = 23707 y voltaje = 0.975

Alguien sabe donde puede estar el problema?

Gracias.
 
La resistencia es ( Vin / ( (Vin-Vout)/R1 ) )

Por eso la de 1k te da 11k y la de 10k te da 20k porque estás sacando la resistencia total.
Luego las tolerancias, claro.
 
Subo un esquema porque el anterior salio mal y no me di cuenta.

Esta mal esta cofiguracion?

Cual seria la formula para sacar la resistencia?

asi me da el despeje: R2 = - (Vout * R1) / Vout - Vin

Gracias.
 

Adjuntos

  • res.jpg
    res.jpg
    5.7 KB · Visitas: 7
Última edición:
Hola chlau usando tu ecuacion r2 = r1 * vout / ( vin - vout)
obtengo estos resultados erroneos:

utilizando 1K obtengo --> 1265 ohm, 0.190 volt
utilizando 10K obtengo --> 13676 ohm, 0.981 volt


no tengo idea que es lo que puede fallar..


gracias.
 
revisa tus cuentas, a mi me da 1180 y 11978, habria que ver si vin es exactamente 1.8 V y si tu resistencia conocida vale exactamente 10000
 
¿ No influye la impedancia de la analog input ? . . . que debería ser muy alta . . .

No creo que la impedancia sea un problema.... Casi apostaria a que el lio es lo que comenta chclau, el voltaje y la resistencias deben ser EXACTOS, cosa que en la realidad nunca pasa

Ademas de todo hay que revisar el programa... el voltaje de referencia no coincide con un valor multiplo de una potencia de 2 (1.024V o 2.048V) y por lo tanto el convertidor pierde resolucion al hacer la conversion, ademas no sabemos que tipo de variables use en su programa (int, long o float) y eso tambien pierde decimales....
 
Atrás
Arriba