Sei sulla pagina 1di 16

MEDICION DE RESISTENCIA Y

TEMPERATURA UTILIZANDO UN
MICROCONTROLADOR PROGRAMABLE
Mario J. García Valdés, Angel G. Cruz Hernández
Publicado en la revista Ingeniería Electrónica, Automática y Comunicaciones.
Vol XIX, No 2. Cuba, 1998. Presentado en el 1er Congreso
Latinoamericano de Ingeniería Biomédica. Mazatlán, México, 1998.

INTRODUCCION:

La utilización de los microcontroladores programables en diversas


aplicaciones es una tendencia creciente, y sobre todo en aquellas en que se
realiza, de forma sencilla, una función concreta. Una de estas aplicaciones
es la medición de resistencia, e indirectamente temperatura, utilizando un
microcontrolador programable PIC16C54.

El principio de funcionamiento consiste en la conversión del tiempo de carga


de un capacitor C (véase la figura 1) en el valor de la resistencia, a través
de la cual se realiza la carga. Esta conversión se logra a partir del circuito
representado en la figura 1, en el que, de forma elemental, se carga un
capacitor C, a la tensión VDD, a través de la resistencia R. [1]

Suponiendo que el capacitor esté descargado y que en t= 0 se cierra el


interruptor S, puede expresarse la tensión VU alcanzada en un tiempo t, de
la forma siguiente:

VU = VDD (1 − e −t/RC
)

despejando t:

t = − RC ln (1 − VU /VDD)

De modo que este tiempo será proporcional al valor de la resistencia R. Si


hacemos válida esta expresión, para dos valores de resistencia diferentes
R1 y R2, manteniendo iguales a fuente VDD y el capacitor C, resultarán las
expresiones:

t1 = − R1C ln (1 − VU/VDD) (1)


t2 = − R2C ln (1 − VU/VDD) (2)

donde:
t1 : Tiempo en que C alcanza el valor de tensión VU con la resistencia R1
(Fig. 2)
t2 : Tiempo en que C alcanza el valor de tensión V U con la resistencia R2
(Fig. 2)

Dividiendo las expresiones (1) entre (2), resulta:

t1/t2 = R1/R2 (3)


Entonces, si se conoce el valor de una de las resistencias, tomada como
referencia, y se miden los tiempos de carga en ambos casos, se puede
conocer el valor de la otra, lo cual, para el caso de un termistor, posibilita
hallar la temperatura correspondiente, ya sea a través de la tabla de
Temperatura contra Resistencia que acompaña al sensor, o a través de una
fórmula aproximada que represente esa variación.

ANALISIS DEL CIRCUITO CON UN MICROCONTROLADOR

En el circuito de la figura 3 se muestra, de forma concreta, el uso de un


microcontrolador PIC16C54 para la medición de una resistencia
desconocida, la cual pudiera ser de un sensor de temperatura del tipo
termistor.

Aplicando lo expresado hasta aquí, y denominando a las dos resistencias de


la fórmula (3), Rm y Rc, resulta que:

Rc: Resistencia de calibración, de precisión y de valor conocido.


Rm: Resistencia desconocida.
Rp: Resistencia de pequeño valor que se usa para limitar la corriente a
través del pin RA3
en la descarga de C.

De esta forma, la tensión VU representa la tensión de umbral, en un pin de


entrada del microcontrolador, que hace que cambie la condición de “0” a
“1” en el mismo; en este caso se ha utilizado el pin RTCC por las ventajas de
histéresis que presenta. Este pin es el reloj del registro del mismo nombre y
cuando ocurre un frente de subida en el pin, se produce un incremento en el
valor del registro. Esto permite establecer un control adecuado, deteniendo
el conteo de tiempo o de ciclos en un lazo del programa interno del
microcontrolador.

El proceso consta de los siguientes pasos:

1. Descarga del capacitor a través del Resistor Rp.


2. Medición del tiempo de carga (tc ) a través del resistor de calibración Rc .
3. Descarga del capacitor a través del Resistor Rp.
4. Medición del tiempo de carga (tm ) a través del resistor desconocido Rm .

2
5. Cálculo de la resistencia Rm .

El algoritmo del programa, en el PIC, se encarga de contar los ciclos o


períodos de tiempo que ocurren desde que se inicia la carga del capacitor C
(después de haberse descargado), hasta que se llega al valor umbral V U, en
el pin RTCC.

3
Una posible realización de este algoritmo es la siguiente:




CLR RTCC ;Limpia registro RTCC
CLR CONT ;Limpia contador de ciclos
UMBRAL JB RTCC.0, FINME ;Si RTCC=1, va a Fin de
Medición
IJNZ CONT, UMBRAL ;Si no hay desborde, repite ciclo
JMP DESBORDE ;Salta a tratamiento de desborde
FINME CALL CALCULO ;Llama a rutina de cálculo de
R


Por tanto, la variación mínima de tiempo que puede ser medida, es la


duración de una vuelta del lazo que ejecuta el conteo de tiempo y la
detección, esto es, la cantidad de ciclos de instrucción (NC) que requiere la
ejecución del lazo. Por ello,

∆tu = 4 NC/f

donde

f: Frecuencia del reloj del PIC


∆tU: Mínima variación de tiempo que es posible medir

Por otra parte, a una variación de tiempo de carga ∆tU, le corresponde una
variación de resistencia ∆R, de modo que, suponiendo C, VU y VDD
constantes:

∆tU = − (∆R) C ln (1 − VU/VDD)

4 NC/f = − (∆R) C ln (1 − VU/VDD)

∴ ∆R = − 4 NC/f C ln (1 − VU/VDD)

lo que constituye la mínima variación de resistencia que es posible medir.

Así, se observa que si se desea disminuir el valor de ∆R, ello puede lograrse
aumentando f, aumentando C o disminuyendo NC. El valor de VU es propio
del circuito integrado y el de VDD es la alimentación que este requiere para
su operación, por lo que son valores no cambiables. Por otro lado, un
incremento de C a niveles muy altos, puede ocasionar inestabilidad en la
detección de la tensión de umbral, ya que la pendiente de la curva de carga

4
se hace menor y con ello se hace imprecisa la intersección de ésta con el
valor de VU.

También, el valor de ∆R está asociado a la resolución, o sea, a la cantidad


de bits en que se exprese la respuesta, toda vez que ese incremento
constituye el paso o escalón elemental, por lo que si R M es el valor máximo
de resistencia a medir y ello se hará con una resolución de n bits, resulta
que:

∆R = RM/2n

∴ RM/2n = − 4 NC/f C ln (1 − VU/VDD)


de donde puede obtenerse una expresión para hallar el valor de C que se
requiera:

C = − 4•2n • NC/f RM ln (1 − VU/VDD)

ó también:

C = − 4 NC/f ∆R ln (1 − VU/VDD)

A modo de ejemplo:

Si VDD = 5 V
VU = 3,6 V
f = 20 MHz
NC = 5 ciclos
y se requiere ∆R = 5 Ω, resulta,

C ≈ 0,157 µF = 157 nF

Se sugiere que el valor seleccionado de C sea ligeramente inferior que el


resultante del cálculo, para evitar un sobreconteo de tiempo durante la
medición. Para este ejemplo, si se desea una resolución de 8 bits, la
resistencia máxima a medir será:

RM = 28 • 5 = 256 • 5 = 1,28 k Ω

Ahora bien, aplicando la expresión (3) al circuito de la figura 3 y


sustituyendo los términos por los que contiene éste, resulta:

Rm = Rc • tm/tc

pero el circuito equivalente en cualquier pin es el que se muestra en la


figura 4, por lo que, en realidad, el tiempo de detección es proporcional a
(Z0 + R), luego,

5
tm/tc = (Z0 + Rm) / (Z0 + Rc) (4)

∴R’m = Rc • (Z0 + Rm) / (Z0 + Rc) = Rm • Rc/(Z0 + Rc) + Z0 • Rc / (Z0 + Rc)

6
donde:

R’m es el valor que resulta de la medición de resistencia


Rm es el valor real de la resistencia
Rc es el valor de la resistencia que se toma como referencia
Z0 es el valor de la resistencia interna de un pin cualquiera del PIC

En la figura 5 se muestra la gráfica R’ m vs Rm y ahí pueden verse el caso


ideal en que el valor de Z0 es 0 y un caso real en que Z0 es mayor que 0.
Además, también se ha supuesto que Z0 permanece constante.

En esta gráfica se observa que el error o diferencia entre el valor medido


(R’m) de la resistencia y el real ( Rm ) es cero cuando Rm = Rc y que va
aumentando a medida que se aleja de ese punto, por lo que se recomienda
seleccionar como valor de la resistencia de referencia el punto medio del
rango de medición deseado. Este es un elemento que depende de la
aplicación concreta, pues el rango de resistencia del sensor puede ser más
amplio que el de la medición y, entonces, se debe tomar en cuenta esta
recomendación.

En realidad aquí se ha supuesto que la resistencia interna del pin es


constante, pero esto no es verdad, pues ella varía con la temperatura, la
corriente que pasa a su través, etc. Por ello, a partir de la expresión (4) y
despejando Rm se obtiene,

Rm = tm (Rc + Z0) / tc − Z0
Así, denominando Z0’ al valor supuesto de la resistencia interna y Rm’ al
valor correspondiente que resultaría de la medición en esas condiciones, la
expresión anterior se convierte en:
Rm’ = tm (Rc + Z0’) / tc − Z0’

y sustituyendo la relación tm / tc según la expresión (4), queda:

Rm’ = (Z0 + Rm) (Rc + Z0’) / (Z0 + Rc) − Z0’

donde Z0 es el valor real que toma la resistencia interna de acuerdo a las


condiciones de temperatura, corriente típica, etc.
De esta forma, la expresión anterior, llevada a un gráfico de Rm’ vs Rm
resulta, para valores de Z0’ mayores, iguales (caso perfecto) y menores
que Z0, según lo mostrado en la figura 6.

7
RESULTADOS:

En la tabla 1, que se muestra a continuación, aparecen los valores de


resistencia medidos, para tres valores de Z0’, que son: 0 Ω (caso ideal), 80
Ω y 140 Ω.

Las condiciones restantes son: Rc = 1,2 k Ω, f = 20 MHz, C = 136 nF y NC =


5 ciclos

Esta tabla es el resultado combinado de la medición física de una resistencia


de valor Rm con el algoritmo de conversión de su valor en ciclos de conteo y
con la fórmula que ejecuta el cálculo para la expresión de esos ciclos de
conteo en el valor “medido” que va a ser tan distinto como el valor que se
suponga de la resistencia interna del pin, o sea, de Z0’. Como puede verse,
el valor óptimo, de los tres seleccionados, es 80 Ω. Por supuesto, esto tiene
un estrecho vínculo con los parámetros que ofrece el fabricante del PIC, lo
cual se verá posteriormente. En la medida en que Z0’ se acerque al valor de
Z0, el valor “medido” se acercará al valor real.

También puede verse, de la tabla, que las diferencias entre el valor


“medido” y el real no son constantes, lo cual es consecuencia de que se ha
supuesto un valor fijo para Z0’, sin tomar en cuenta sus cambios con las
variaciones de corriente que se producen al modificarse la resistencia.

De todo este análisis puede arribarse a la conclusión de que la presencia y


el valor de la resistencia interna del pin tienen un peso importante en la
exactitud de la medición, y tanto mayor cuanto más cercano esté su valor
al orden en que se encuentran la resistencia medida.

Sin duda, como se expresó anteriormente, la selección del valor de la


resistencia interna no puede ser arbitraria, sino que ello debe estar en
concordancia con los parámetros que brinda el fabricante del PIC, o sea, a
partir de la curva de IOH vs VOH, puede obtenerse, para diferentes
temperaturas, el valor de la resistencia estática interna que no es más que
el recíproco de la pendiente de la recta que une cada punto de la curva con
la esquina superior derecha, o sea, con el punto de cero corriente (I OH =0)
así como la resistencia externa que corresponde a cada valor de corriente
IOH. En la figura 7 se muestra una aproximación a las curvas dadas por el
fabricante (Microchip Technology Inc.) para tres temperaturas, de un
circuito del tipo PIC16C5X. [2]

Aquí se han trazado las curvas correspondientes a las temperaturas típica


(25 ºC), mínima ( - 40ºC para los circuitos de uso industrial) y máxima (85
ºC para los circuitos de uso industrial).

8
Con estas curvas se puede llegar a la(s) curva(s) que se requiere(n) para la
selección del valor de la resistencia interna. El circuito equivalente que sirve
de apoyo para el trazado de la(s) curva(s) de Z0 vs IOH, se muestra en la
figura 8.

9
Según todo lo visto hasta aquí, es posible construir la curva que aparece en
la figura 9.

En la curva, además del eje de corriente en las abscisas, hay un eje que
representa la resistencia externa y cuyo valor está asociado con el valor de
la corriente, por el esquema que aparece en la figura 8. Por otra parte, en la
aplicación considerada, el rango de temperatura escogido es de 0 ºC hasta
50 ºC, lo cual implica un rango de resistencia a medir, según el termistor
que se utiliza, entre 7,355 kΩ y 811 Ω. Este diapasón cubre una zona de la
curva que, proyectada en el eje vertical, arroja un rango para Z0 entre 72 Ω
y 82 Ω, pero hay un rango de temperatura preferencial entre 30 ºC y 50 ºC
donde se requiere mayor precisión en la medición. Esto implica un rango de
resistencia entre 1815 kΩ y 811 Ω, lo que implica una variación de Z0 entre
77 Ω y 82 Ω, por lo cual se toma un valor medio de 80 Ω. Hay que especificar
que todo lo anterior es bajo la suposición de que no van a ocurrir cambios
sensibles de temperatura del microcontrolador que alteren estos valores.

En la práctica, esto ha sido comprobado en un monitor de signos vitales y


los resultados logrados han sido satisfactorios, obteniéndose mediciones de
temperatura en el rango de 25 ºC a 50 ºC con un error menor de ± 0,2
ºC, lo cual representa un valor ∆R ≈ 6 Ω.

CONCLUSIONES

El método presentado permite la medición de resistencia (e, indirectamente,


de temperatura) de forma sencilla y barata, ya que requiere de pocas
componentes, de las cuales sólo el resistor de calibración necesita ser de
precisión. El uso de un microcontrolador programable facilita la realización
de la medición y le da flexibilidad a la misma. En la utilización de este
método, quedó demostrada la importancia de tomar en cuenta el valor de la
resistencia interna del pin del PIC, calculado según se ha descrito en el
presente trabajo.

En la aplicación específica, se obtuvo una buena exactitud en la medición de


la temperatura, ya que satisface los requisitos de las normas vigentes en
este campo.

REFERENCIAS

1.- Ohmmeter/Temperature Sensor. AN512. Microchip Technology Inc.


1990.

2.- PIC16C5X Technical Manual. Microchip Technology Inc. 1992.

10
S R
VDD

Fig. 1 Circuito elemental de carga de capacitor C.

VDD

R2
R1
VU

t1 t2
t

Fig. 2 Variación de la tensión de carga del capacitor C para las resistencias


R1 y R2

Rc RA0 RB0

Rm RA1 RB1
RB2
RA2
RB3
RA3 RB4
PIC16C54
RB5

RB6
Rp RTCC RB7
C

11
Fig. 3 Esquema circuí tal para el cálculo de resistencia utilizando un
PIC16C54

12
VDD

Z0

R
C

Fig. 4 Circuito equivalente de carga del capacitor C desde un pin cualquiera

R’m
Z0 = 0
Z0 >0

Rc

Rc
Rm

Fig. 5 Representación gráfica del valor medido vs el valor real.

R’m Z0’= Z0
Z0’>Z0
Z0’<Z0

Rc

Rc
Rm

Fig. 6 Variación de la resistencia medida vs la real del sensor con la


variación de la resistencia del pin

13
Tabla Nº 1. Comparación de los valores de resistencia medidos para
diferentes valores de Z0’

Rm R'm(Z'o=0ohm)R'm(Z'o=80ohm)R'm(Z'o=140ohm)
50 133 62 0
100 175 107 52
400 451 401 361
800 828 804 781
1,2 k 1,2 k 1,2 k 1,2 k
1,6 k 1,58 k 1,61 k 1,63 k
2k 1,96 k 2,01 k 2,05 k
5k 4,77 k 5,01 k 5,21 k
9,8 k 9,32 k 9,85 k 10,3 k
47,2 k 44,7 k 47,5 k 49,9 k
0
IOH (mA) Mín @ 85ºC

−10

−20

−30 Típ @ 25 ºC

Máx @ -40 ºC

14
−40
1.5 2 2.5
3 3.5 4 4.5 5
VOH (Volts)
Fig. 7 IOH vs VOH para tres temperaturas diferentes.

VDD

Z0

Rm
VDD − VOH

Fig. 8 Circuito equivalente cuando se impone un “1” en un pin del PIC que
tiene conectado una resistencia a medir.

Z0 (Ω)

160

140

120
T = 25 ºC

100

80

60

40

20

0
5 10 15 20 25
28 30 IOH (mA)

5 3 1,6 0.9 0.4 0.25


0.05 Rm (kΩ)

15
Fig. 9 Representación gráfica de Z0 vs IOH, para 25 ºC

16

Potrebbero piacerti anche