seleccionando resistencia de polarización para termistor

8

Rt es termistor. Rb es resistencia de polarización, valor que necesito calcular. La temperatura que me interesa es dar un rango de resistencia de Rt de 4k...115k . Lo que quiero es escalar esto a la resolución total de ADC, que es 10 bit, es decir, 0...1023 . Entonces cuando Rt = Rb ADC lo convertirá a 511 . No estoy seguro de que sea posible, pero lo ideal sería obtener la lectura de 0 ADC cuando Rt = 4k y 1023 cuando Rt = 115k (o lo contrario).

Internamente en MC tengo una tabla de búsqueda, que convertirá el valor de ADC a temperatura, según la curva descrita en la hoja de datos del termistor.

    
pregunta Pablo

2 respuestas

7

Si \ $ R_T \ $ la resistencia más baja es 4k, entonces puede calcular fácilmente la resistencia requerida para hacer un divisor de voltaje. Si selecciona un voltaje de referencia ADC desde el intervalo de banda interno (generalmente 2V56 o 1V1), puede usar casi todo el rango de ADC. Por lo tanto (siempre que \ $ V_ {CC} \ $ sea constante):

$$ U_ {REF} = U_ {IN, MAX} = \ frac {R_ {B}} {R_ {B} + R_ {T, MIN}} × V_ {CC} $$ $$ R_B = \ frac {U_ {REF} × R_ {T, MIN}} {V_ {CC} - U_ {REF}} $$

Y redondear \ $ R_B \ $ hacia abajo, por lo que nunca llegará a escala completa en el ADC. Una vez que tenga \ $ R_B \ $ debería poder calcular el voltaje de entrada más bajo que puede alcanzar. Saber esto es valioso porque puede hacer dos controles de cordura en su programa:

  1. Cuando el valor de ADC es (cerca de) 1023, esto indica que el sensor falló en el cortocircuito (cableado defectuoso, ...);
  2. Cuando el valor de ADC es (cerca de 0), esto indica que el sensor no se abrió (no está conectado, cable roto, ...)

Según estos dos controles, puede hacer que su programa decida qué hacer: por ejemplo, establezca una salida de error alta, quite la energía de una carga, ...

Tenga en cuenta que con este divisor de voltaje resistivo, la resolución de su medición variará ampliamente a lo largo de la escala.

Por ejemplo. con la referencia de intervalo de banda establecida en 1V1 y tensión de alimentación 5V: $$ R_B = \ frac {1.1V × 4k \ Omega} {5V-1.1V} = \ frac {4.4k} {3.9} = 1.13k \ Omega $$ Redondeado al primer valor disponible de E12 hace que \ $ 1k \ Omega \ $

$$ U_ {IN, MIN} = \ frac {1k \ Omega} {1k \ Omega + 115k \ Omega} × 5V = 43mV $$

$$ U_ {IN, MAX} = \ frac {1k \ Omega} {1k \ Omega + 4k \ Omega} × 5V = 1000mV $$

La ventaja de usar la referencia 1V1 es que es bastante fácil predecir un rango de valores ADC aproximado : 43 - 1000

    
respondido por el jippie
9

Con un simple divisor resistivo, no podrá estirar el rango de voltajes de salida para cubrir todo el rango de la entrada ADC, pero obtendrá la mejor resolución general al configurar su resistencia de polarización en media geométrica de los valores de resistencia mínimos y máximos de su sensor (para el rango de temperatura de interés).

Para su configuración específica, sería \ $ \ sqrt {4K * 115K} = 21.447K \ $

Puede seleccionar una resistencia de 21.5K 1% o una resistencia de 22K 5%. Los voltajes que obtienes serán del 15.7% al 84.3% del rango de entrada del ADC.

Para obtener voltajes de salida que cubran todo el rango del ADC, necesitará un circuito activo (por ejemplo, amplificador operacional) que tenga capacidad de ganancia y compensación.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas