Vous êtes sur la page 1sur 30

UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.

TRABAJO FINAL INTEGRADOR


NOMBRE/LEGAJO CURSO HOJA
4R2 1

INTRODUCCION

El objetivo de este trabajo es el de crear un instrumento de medición, un medidor de pH, de


dos dígitos decimales de precisión, mediante el aprendizaje de la teoría de funcionamiento
de un sensor de pH y mediante la aplicación de los conocimientos adquiridos en las materias
de Electrónica Aplicada II, Técnicas Digitales II y Medidas Electrónicas I durante el año
2008.

Se considera también como objetivo el reunir la mayor cantidad de información posible


acerca de la construcción y funcionamiento de este tipo de instrumentos analizando diversas
hojas de datos, manuales de fabricantes y hojas de especificaciones técnicas.

Nuestro interés en este proyecto se basa en la gran cantidad de aplicaciones que tiene la
medición precisa de pH. Esta es útil en industrias; lácteas, bebidas, alimenticias, alimentos
procesados, control de calidad, acuarios, criaderos de peces, agua, tratamiento de agua,
laboratorio, fotografía, papel, galvanoplastia, agricultura, como también en Escuelas,
Universidades, etc.
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 2

INTRODUCCION TEORICA

TEORIA DEL pH

La medición de pH juega un rol importante para identificar los niveles de acidez o alcalinidad
en procesos industriales y de investigación.
El pH es la medición de la acidez o alcalinidad de una solución y puede ser representada por
esta ecuación:

pH = -log [H+]

Donde [H+] representa la concentración de iones de hidrógeno en la solución. Utilizando un


medidor de pH se pueden determinar valores exactos de pH de soluciones. Por ejemplo, en
vez de decir que el jugo de limón es una solución bastante ácida, se puede decir que el
mismo tiene un pH de 2,4. Un valor exacto de pH se puede utilizar para controlar o medir
niveles de acidez en un proceso de manufactura o en investigaciones. Los valores de pH
tienen un rango de 0 a 14, con el valor 7 siendo el punto neutral, o el valor del agua pura.
Valores de pH por encima de 7 representan mayor alcalinidad mientras que valores por
debajo de 7 representan mayor acidez.
A continuación se muestra el nivel de pH de algunas sustancias comunes:
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 3

TEORIA DE ELECTRODOS ION SELECTIVOS

Un electrodo ion-selectivo es un transductor que convierte la actividad de un ion específico


disuelto en una solución a un potencial eléctrico. El voltaje depende de la actividad iónica y
de la ecuación de Nernst. La parte sensible del electrodo se fabrica con una membrana que
responde a iones específicos, en conjunto con un electrodo de referencia el cual completa el
circuito eléctrico de medición y provee un punto de referencia
estable. Estos dos electrodos juntos forman lo que se conoce
como un electrodo combinado. El resultado es un dispositivo de
muy alta impedancia de salida y que brinda un potencial
eléctrico directamente proporcional al pH de la solución en la que
se encuentra sumergido.
En el caso del electrodo de pH, este responde a iones de
hidrógeno [H+].

Dado que el potencial brindado por el electrodo es


directamente proporcional al pH de la solución, se puede
trazar la curva de respuesta de un electrodo, que es
idealmente lineal, pero con una leve curvatura en la
práctica.
Esta curva depende del fabricante y su pendiente se atenúa
con el envejecimiento del electrodo.
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 4

Otro factor que influye en la respuesta del electrodo es la temperatura. Esta variación esta
descrita por la ecuación de Nernst, en donde la pendiente de la curva esta idealmente
determinada por la siguiente expresión:

2,3.R.Tk
m=
n.F

En donde:

“R” es la constante universal de los gases;

 J 
R = 8,314472
 K .mol 

“Tk” es la temperatura absoluta en grados Kelvin;

“n” es la carga del ión (incluyendo el signo) que para el ión [H+] vale 1;

“F” es la constante de Faraday;

 C 
F = 9,64853399.104 
 mol 

Idealmente, para una temperatura de 25ºC, la pendiente de la curva es:

m = 59,1[ mv / pH ]

En donde la pendiente de la recta crecerá para mayores valores y disminuirá para menores
valores de temperatura como se observa en el siguiente ejemplo:
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 5

Tabla de error de pH / Temperatura


pH 2 pH 3 pH 4 pH 5 pH 6 pH 7 pH 8 pH 9 pH 10 pH 11 pH 12

5° .30 .24 .18 .12 .06 0 .06 .12 .18 .24 .30
15° .15 .12 .09 .06 .03 0 .03 .06 .09 .12 .15
25° 0 0 0 0 0 0 0 0 0 0 0
35° .15 .12 .09 .06 .03 0 .03 .06 .09 .12 .15
45° .30 .24 .18 .12 .06 0 .06 .12 .18 .24 .30
55° .45 .36 .27 .18 .09 0 .09 .18 .27 .36 .45
65° .60 .48 .36 .24 .12 0 .12 .24 .36 .48 .60
75° .75 .60 .45 .30 .15 0 .15 .30 .45 .60 .75
85° .90 .72 .54 .36 .18 0 .18 .36 .54 .72 .90

Como se puede observar, el error de la respuesta del electrodo de pH respecto a las


variaciones de temperatura varía basándose en la ecuación de Nernst y se puede expresar
mediante la siguiente relación:

error = 0,003⋅ ∆T ⋅ ∆pH

En donde ΔT es la variación de grados centígrados que hay respecto a 25ºC, y ΔpH es la


variación en unidades de pH respecto a un pH 7.
De esta manera, para una medición de una solución de pH 4 a 35ºC nuestro electrodo
brindará un voltaje equivalente a un pH de 4.09 pH y para la misma medición a 15ºC, leerá
3.91 pH.

La ecuación muestra que el error de temperatura es función tanto de la misma temperatura


como del pH que se mide. No hay error para pH 7 y en 25ºC.

En los medidores de pH comerciales, se puede mejorar la lectura mediante una


compensación ya sea manual o automática del pH en función a la temperatura.
Manualmente se logra ingresando mediante un control la temperatura de la solución en
cuestión, devolviendo el dispositivo una lectura “compensada”, o corregida al valor que se
espera entregue el electrodo para dicha solución a 25ºC.
Una compensación automática requiere una lectura constante de la temperatura de la
solución a través de un sensor de temperatura.
Este proceso solo corrige el error producido por el electrodo de pH, no corrige las
variaciones de pH que pueda tener una sustancia respecto a elevaciones o disminuciones
de temperatura.
Es por esto que en la práctica, cada medición debe tomarse anotando tanto el pH medido
como la temperatura de la muestra y la composición de la solución.
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 6

COMPENSACION

Como se dijo anteriormente la variación de la respuesta del electrodo respecto a la


temperatura puede describirse con la siguiente ecuación:

error = 0,003⋅ ∆T ⋅ ∆pH

Por ende:

Vr − Vm = 0,003 ⋅ ∆T ⋅ ∆pH

Donde Vr es el valor real de la solución y Vm el valor medido, ΔT es la variación de grados


centígrados que hay respecto a 25ºC, y ΔpH es la variación en unidades de pH respecto a
un pH 7.
A partir de esta ecuación necesitamos deducir una fórmula para compensar la respuesta del
electrodo con dichas variaciones mediante el microcontrolador.

Vamos a considerar dos casos:

• Si pH > 7 utilizamos la siguiente ecuación:

Vm − Vr = 0,003⋅ (T − 25) ⋅ (Vr − 7)

Despejando:

Vm + 0,021.T − 0,525


Vr =  
 1 + 0,003.T − 0,075 

Donde “T” es la temperatura en grados centígrados.

• Si pH < 7 utilizamos la siguiente ecuación:

Vm − Vr = 0,003⋅ (T − 25) ⋅ (7 − Vr )

Despejando obtenemos:

Vm − 0,021.Tr + 0,525


Vr =  
 1 − 0,003.Tr + 0,075 
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 7

Donde Tr = 50-T

Aplicando estas dos ecuaciones se puede obtener un valor compensado mediante software.
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 8

SOLUCIONES BUFFER

Las soluciones buffer son soluciones acuosas de niveles conocidos de pH (pH 4,7,10 etc.)
que tienen la propiedad de mantener valores bastante estables de pH. Sin embargo, como
en cualquier otra sustancia, su valor también varía con la temperatura.

Estas soluciones son utilizadas en una amplia gama de procesos, siendo uno de ellos la
calibración de instrumentos medidores de pH.
Dado que la respuesta de un electrodo de vidrio a variaciones de pH es lineal, conociendo la
tensión entregada por el electrodo en dos puntos precisos de pH nos permite conocer la
curva completa. Es por esto que en la calibración de instrumentos de medición de pH se
utilizan dos soluciones buffer de valores diferentes.

MEDICIONES

Dado que la pendiente de un electrodo de pH decae con el tiempo, es imprescindible la


calibración habitual del instrumento.
Para obtener una medición lo mas precisa posible, se debe calibrar el instrumento antes de
cada medición en dos soluciones buffer de valores cercanos al valor que se va a medir para
asegurarse que la lectura se encuentre en una zona de la curva de respuesta lo mas lineal
posible.
La calibración en general se efectúa en dos puntos, siendo uno de ellos el punto neutro o de
pH 7 mediante el cual fijamos el punto cero de la curva de respuesta mediante un
desplazador de nivel (en pHmetros comerciales, el control de “estandarización”).
Posteriormente se procede a calibrar utilizando otra solución de valor cercano al que se va a
medir, y fijando la ganancia del amplificador de entrada de manera de llevar la pendiente de
la curva al valor deseado (en pHmetros comerciales, el control de “slope” o pendiente).
Entre cada medición se debe limpiar el electrodo con agua destilada para evitar la
contaminación de las muestras.
La temperatura tiene dos efectos de interferencia, el potencial de los electrodos y la
ionización de la muestra varían. El segundo efecto es inherente de la muestra y solo se toma
en consideración, anotando la temperatura de la muestra y su pH; para más exactitud, se
recomienda que la muestra esté a 25 ° C, que es la temperatura de referencia para la
medición del pH.
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 9

DIAGRAMA EN BLOQUES

Desplazador
Lectura
Electrodo
Amplificación
Conversión
Compensació
Amplificador
Sensor
pH
Temperatur
LCD
deA/D
nivel
n
a

El sensor de pH es un tipo de electrodo de vidrio con una salida de alta impedancia que
brinda una tensión en milivolts directamente proporcional al pH de la solución en cuestión.
Es por esto que idealmente se puede medir el pH de una solución con bastante precisión
aplicando los factores de conversión apropiados.

El electrodo de pH brinda una salida de tensión negativa para soluciones bases y una
tensión positiva para soluciones ácidas, dando una tensión de cero para una solución neutra
(pH 7).

El instrumento cuenta de una precisión de dos dígitos decimales con lo que se requiere una
señal limpia para obtener una medida estable.
La etapa de conformación de señal fue desarrollada completamente con amplificadores
operacionales. Consta de un amplificador en configuración no inversora que eleva las
tensiones proporcionadas a un rango de tensiones aceptables para un conversor A/D,
seguido de un desplazador de nivel (configuración restadora) encargado de llevar dichas
tensiones a valores únicamente positivos. Una etapa de filtrado simple se encarga de limpiar
la señal para obtener valores lo mas estables posible.

La señal conformada es luego llevada a la entrada A/D de un microcontrolador en donde un


programa se encarga de adecuarla para ser leída por un display LCD de 16x2 caracteres
previamente compensando la variación de respuesta del electrodo respecto a la temperatura
de acuerdo a la ecuación de Nernst.
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 10

ACONDICIONAMIENTO DE LA SEÑAL

Mediciones y determinaciones preliminares

Para tener una idea aproximada de los valores de tensiones que debe manejar el circuito, se
debe primero conectar el electrodo a un circuito seguidor de tensión simple con un
amplificador operacional y medir el valor de salida para dos soluciones de calibración, para
poder así determinar la pendiente de la recta de respuesta del electrodo, y conocer así sus
valores máximos y mínimos.

En la primera medición, a una temperatura de alrededor de 28ºC se obtuvo una diferencia de


tensión entre una solución de pH 7 y otra de pH 4, de alrededor de 177,1mV. Dado que en el
intervalo entre pH 7 y 4 hay 3 unidades de pH, podemos decir que la pendiente de la recta
es de 59,03mV por unidad de pH.

De esta manera, si para pH 7 tenemos 0 mV de tensión, entonces para pH 0 debemos tener


unos 413,23 mV, y simétricamente debemos tener unos -413,23mV para un pH de 14.

De esta manera determinamos los máximos de tensión que entregará el electrodo para
proceder a diseñar la etapa de acondicionamiento.

El primer paso consiste en llevar estos valores a un rango de tensión manejable por la
entrada analógico digital del microcontrolador. En este caso, vamos a elegir un rango de
tensiones de 0 a 4V, donde 0 representa un pH de 0 y 4V un pH de 10. Los valores de pH
mayores a 10 no serán tomados en cuenta. Dado que el conversor A/D del microcontrolador
es de 10 bits, si queremos elaborar un instrumento con dos dígitos de precisión,
necesitaremos un conversor más grande, y dado que el rango de pH de 0 a 10 es común en
los peachímetros comerciales, tomaremos el mismo para nuestro proyecto.

Ahora bien, para obtener la señal deseada debemos efectuar una transformación lineal en la
recta de respuesta del electrodo, la cual consiste en una amplificación, una inversión y un
desplazamiento de nivel como se muestra en el gráfico siguiente. Más adelante se cubrirá
cada etapa por separado.
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 11

Amplificador de entrada

Como se dijo anteriormente, la señal proporcionada por el electrodo de pH es constante para


temperaturas cercanas a la temperatura ambiente (25ºC) y varía con el tiempo y
envejecimiento del electrodo. Para esto es necesario un sistema que permita amplificar o
atenuar la señal en la medida que sea necesario. Además la entrada del sistema debe ser
de alta impedancia para poder acoplar con la enorme impedancia del electrodo de pH (entre
10 MOhm a 1000 MOhm).

Esto se logra en un principio con un amplificador en configuración no inversora con ganancia


variable como se muestra a continuación:

5 V 5 K
R 5
B N C
R 1 U 71
3 V + 5 R 6
+ O S 2 4 K 7
3 9 K
C 1 6
O U T
2 . 2 n 2 1 V o u t
- 4 O S 1
C A 3 1V 4 -0

- 5 V

R 3 R 4
5 0 K 2 K 2

R 2
1 K

La señal ingresa por un filtro simple pasa bajos de frecuencia de corte de alrededor de 2KHz
formado por C1 y R1, que mejora y limpia la señal de ruidos de alta frecuencia. Se puede
utilizar una frecuencia de corte inferior, pero esto afectará considerablemente el tiempo de
respuesta del electrodo lo cual es indeseable.

La señal filtrada ingresa luego a la etapa amplificadora compuesta de un amplificador


operacional CA3140. Se utilizó este AO por tener entrada de tipo MOSFET y por ende una
gran impedancia de entrada (del orden de 1,5 TOhm), además de una corriente de
polarización muy pequeña (del orden de los 10pA).
La señal ingresa por la entrada no inversora de dicho AO.

La ecuación de ganancia para esta configuración es:

RA + RB
A=
RA

Donde RB es la resistencia de realimentación y RA la resistencia conectada entre la entrada


inversora y masa.
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 12

Para este circuito utilizamos un potenciómetro multivueltas de manera tal que:

RA = R2 + R3α

RB = R4 + R3β

R3 = R3α + R3β = 50K

El valor máximo de RA se dará cuando R3α sea igual a R3. En este caso RB tendrá su valor
mínimo:

RAmax = R2 + R3 = 60K ; RBmin = R4 + 0 = 22K

RA tendrá su valor mínimo cuando R3α sea igual a cero, y en este caso RB será máximo:

RAmin = R2 + 0 = 10K ; RBmax = R4 + R3 = 77K

De esta manera podemos establecer el rango de ganancias que manejará el amplificador, y


modificarlo levemente con el potenciómetro a los niveles que sean necesarios.

RA min + RB max
G max = = 8,7
RA min

RA max+ RB min
G min = = 1,37
RA max
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 13

Dado que la alimentación de los AO es de +5V y -5V, no es necesario preocuparse por una
ganancia que lleve la tensión a niveles mayores que los máximos admisibles por las
entradas del microcontrolador, dado que esta nunca sobrepasará los 5V.

El circuito compuesto por R5 y R6 es un circuito de anulación de tensión de Offset, y es


necesario si se requiere una tensión precisa a la salida del primer amplificador.
La ganancia se fija de manera que la recta tenga límites de -2,8 y +2,8V
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 14

Desplazador de nivel

Una vez amplificada la señal, es necesario invertirla y desplazarla de manera de obtener una
la tensión de salida expresada anteriormente.

Esto se logra mediante un circuito sumador inversor, en donde la ecuación de


funcionamiento esta dada por:

 − 5V VAmp 
Vout = − R9. + 
 R8 + R12 R7 

V A m p - 5 V
R 7
1 0 K R 9

- 5 V T L 01 81 4
1 8 K 1 0 K 2 V -1 0 K
R 8 R 1 2 -
V o u t
1
O U T
3
+ 4
U 2 AV +

- 5 V

Si hacemos que R9 sea igual a R7:

 R9 
Vout = − ⋅ (−5V ) + VAmp 
 R8 + R12 

Para llevar la curva de respuesta del electrodo a su posición final, debemos invertirla y
desplazarla 2,8V hacia arriba. De esta manera un pH de 0 coincidirá con 0 Volts mientras
que un pH de 10 lo hará con 4 Volts. El resto de la curva se descarta.

Este efecto se logra restando un voltaje de 2,8V a la tensión a la salida del primer
amplificador, y luego invirtiendo el resultado.
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 15

Filtrado final

El siguiente paso, es un filtro paso-bajo de dos etapas, con una frecuencia de corte de 7Hz,
para eliminar el ruido acumulado en los pasos anteriores.

- 5 V - 5 V

T L 01 81 4 T L 0 81 41
9 V - 6 V -
- -
S a lid a a A / D
8 7
R 1 0 O U T R 1 1 O U T

V in 1 0 5
+ 4 + 4
1 M U 3 CV + 1 M U 3 BV +

C 2 C 3
2 2 n - 5 V 2 2 n - 5 V

Frecuencia de corte:

1
fc = ≈ 7 Hz
2 ⋅ π .R ⋅ C

Sensado de temperatura

Para medir la temperatura de la solución se utiliza un sensor de temperatura LM35


acondicionado para poder ser sumergido. Dicho sensor brinda una tensión de 10mV por
grado centígrado de temperatura con lo que la única conformación de señal necesaria es la
de un amplificador que lleve los valores brindados por el sensor a niveles manejables por el
ADC del microcontrolador, en este caso un amplificador no inversor de ganancia 4, de
manera tal que el máximo valor medido de temperatura (100ºC) coincida con 4 Volts.

- 5 V

U 3 D
4

L M 3 5
1 2
+
V+

V o u t
1 4
O U T
1 3
11

-
T L 0 8 4
V-

- 5 V
1 K 5 1 K 3 K 9
R 1 3 R 1 5 R 1 4
UNIVERSIDAD TECNOLÓGICA NACIONAL - - F.R.C.
5 V - 5 V
TRABAJO FINAL INTEGRADOR
5 V 5 K
NOMBRE/LEGAJOR 5 CURSO HOJA
B N C
R 1 U 1 T L 0 8 T4 L 0 4R2
8 4 16

11

11
7
3 R 6 5 9 6
+ O S 4 2K 7 - 5 V - -
CIRCUITO COMPLETO

V-
V-
V+
3 9 K P H
C 1 6 R 7 8 7
O U T 1 0 K R 9R 1 O0 UR T1 1O U T
2 .2 2 n 1 1 0 5
- O S 1 + +

V+
V+
V-
C A 3 - 51 U 3 1C U 3 B
V4 0 T L 0 81 4M M

11
1 81 K0 2 K 1 0 K

4
R R8 1 - 2 C 2 C 3

V-
- 5 V 1 -2 5 n V 2- 5 n V
O U T2 2
R R 3 4 3
5 20 K 2 +

V+
U 2 A
R 2

4
1 K

- 5 V - 5 V

3 U 5 3 D

4
L M
1 2
+

V+
T E M P E R A T U R A
1 4
O U T
1 3
-
V-
T 11 L 0 8 4

- 5 V
1 K 1 5 K 3 K 9
R 1 R 3 1R 5 1 4
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 17

SECCION DIGITAL

ESQUEMA CIRCUITAL:
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 18

Para este proyecto se utilizó un microcontrolador PIC16F873 que cuenta con las siguientes
características:

Item Valor
Memoria de programa 7.2 KBytes (8192 instrucciones)
Memoria SRAM 192 KBytes
Memoria EEPROM 128 KBytes
Número de E/S 22
Número de ADC 5 (10 Bits)
Número de PWM 2
SPI Si
I2C Si (Master)
USART Si
Timers 8 Bits 2
Timers16 Bits 1
Comparadores 2
Clock 0-20 MHz
Número de pines 28
Cápsula PDIP, SOIC, SSOP, QFN
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 19

El PIC necesita muy pocos elementos externos para su funcionamiento. Es necesario


verificar en la hoja de datos del mismo los valores máximos de corriente de entrada en los
pines (25 mA) y poner una resistencia limitadora de corriente en el pin que vallamos a utilizar
como entrada. A los pines que no utilizamos los declaramos como salida de esta forma se
simplifica más la placa del circuito.

Por otro lado el cristal utilizado tiene dos capacitores que van a masa, el valor de los mismos
se obtienen de una tabla de la hoja de datos del pic, que según la frecuencia a la que oscile
el cristal será el valor de los capacitores que se deben colocar.

Lo fundamental en la polarización del PIC es que debe tener una alimentación bien
estabilizada, tanto para la tensión de referencia como para la alimentación del PIC, esto nos
garantiza una conversión correcta de los valores de pH y temperatura.

Con respecto a la alimentación del LCD debemos fijar dos niveles de corriente, el nivel de
corriente del LED de iluminación de la pantalla y el nivel de contraste de los caracteres,
además se debe colocar una resistencia de pull up 10K en la línea enable del mismo.

Las señales de pH y temperatura ya acondicionadas ingresan por las entradas del ADC
donde serán tratadas por el microcontrolador para su adecuación y presentación en el
display como se explica a continuación.
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 20

PROGRAMA:

El programa para manejar el microcontrolador fue realizado en el compilador para C “CCS”.


Las partes principales del programa son el manejo del LCD , la conversión digital de las
muestras y el grabado en memoria de las mediciones de pH, a continuación detallaremos
estas secciones del código.

Conversión digital:

Para la conversión digital de las mediciones, en primera instancia debemos saber que rango
de ph necesitamos medir y con que resolución, lo mismo para la temperatura. En este caso,
ya que contábamos con un pic16f873 y queríamos medir ph con dos cifras decimales,
elegimos el rango de 0 a 10.23 grados de ph logrando una resolución de 10.23/1023=0.01.
Por otro lado, para la medición de la temperatura elegimos el rango de 0ºc a 100ºC, la
resolución es por ende 100/1023=0.097752, en el programa mostramos solo una cifra
decimal.

La conversión la lleva a cabo la función “AD_isr“, que se llama constantemente a través de la


interrupción del ADC del PIC una ves que este lista la conversión.
En ella se configuran los canales del conversor a utilizar, se realiza la lectura de la
conversión y el pasaje de hexadecimal (resultado de la conversión) a pH o temperatura.

# INT_AD //interrupción del ADC ,se activa cuando esta lista la conversión.

AD_isr()
{
Set_ADC_Channel(0); //especifico el canal para la conversión.
delay_us(1);
i=Read_ADC(ADC_READ_ONLY); //lee el ultimo resultado
i=10.23*i/1023;
delay_ms(1);
Read_ADC(ADC_START_ONLY); //inicia nueva conversion.
Set_ADC_Channel(1);
delay_us(1);
j=Read_ADC(ADC_READ_ONLY);
j=100*j/1023;
Read_ADC(ADC_START_ONLY); //inicia nueva conversion.
}
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 21

Condición de compensación:

Se aplican al programa las dos ecuaciones deducidas anteriormente mediante dos


condicionales simples:

if(i>7)
{
i=(i+0.021*j-0.525)/(1+0.003*j-0.075);
}
if(i<7)
{
i=(i-0.021*(50-j)+0.525)/(1-0.003*(50-j)+0.075);
}

Luego en el “main” del programa hay una sección importante del código en la que se
configura el resto parámetros necesarios para el manejo del ADC:

Setup_ADC_Ports(RA0_RA1_ANALOG_RA3_REF); //configuro como analógica la ra0, la


ra1 y la ra3 como referencia.

Setup_ADC(ADC_CLOCK_DIV_32);
enable_interrupts(INT_AD); // habilito interrupción del ADC.
enable_interrupts(GLOBAL); //habilito la interrupción para ser usada de manera globa.l
delay_us(1);
Read_ADC(ADC_START_ONLY); //inicializo la conversion.

LCD:

El manejo del LCD se reduce a la utilización de una serie de funciones correspondientes a la


librería LCD.C, estas se detallan a continuación:

lcd_init();
//Debe ser llamada antes que las otras funciones.

lcd_putc(c);
//Visualiza c en la siguiente posición del display.

Caracteres especiales de control:

\f Borrar display
\n Saltar a la segunda línea
\b Retroceder una posición.

lcd_gotoxy(x,y); //Selecciona la nueva posición de escritura en el display.

lcd_getc(x,y); //Devuelve el caracter de la posición x,y del display.


UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 22

lcd_enviar(LCD_COMANDO, LCD_HOME);
//lleva el cursor al inicio.

lcd_enviar(LCD_COMANDO, LCD_CLEAR);
//limpia la pantalla.

Grabación en memoria EEPROM:

Con respecto a la grabación en memoria, también es un proceso sencillo, simplemente se


realiza a través de las siguientes funciones:

write_eeprom(cm,m1); //m1 es el dato y cm la posición de memoria


r1=read_eeprom(lectura); //en r1 se guarda el dato de la posición “lectura” de la EEPROM

En el programa se pueden ver una serie de condicionales “if” y “while” que sirven para
verificar el estado de los pulsadores actuando como una especie de interrupción, vale
aclarar que unos de los problemas que trae aparejado este procedimiento es que se debe
mantener presionado el pulsador hasta que la ejecución del programa llegue hasta el punto
en el que se verifica el estado de dicho pulsador, momento en el cual si el pin esta en nivel
alto la pantalla se pondrá en blanco para indicarle al usuario que fue tomada la acción
seleccionada, luego hay un delay de 20 ms para evitar el rebote del pulsador y un while
infinito para que no salga de ahí hasta que no sea soltado el pulsador, lo mismo para cada
uno de los pulsadores.

Para grabar cualquier medición de PH que se este mostrando en pantalla se debe presionar
en cualquier momento el interruptor conectado al pin declarado como mem (PIN_c3).
En esa sección del programa se realiza un “casteo” de la parte entera y la parte decimal de
la medición para poder guardarla en memoria ya que esta es 8bits, de esta manera
separamos al numero en dos partes y las guardamos en posiciones consecutivas de
memoria.

Para leer las mediciones guardadas en memoria se debe presionar en cualquier momento el
interruptor conectado al pin declarado como read (PIN_c4) , con lo cual se muestra en
pantalla el dato guardado en la memoria 0 y luego a través de el pulsador conectado al pin
declarado como mas (PIN_C5) se puede ir ascendiendo en la lectura de la memoria hasta
llegar a la memoria 4 y si volvemos a pulsar volveremos a la memoria 0.
Hemos usado solo 10 byte de los 128 byte que posee la memoria eeprom (5 mediciones de
pH en total) por comodidad a la hora de buscar una determinada medición y para facilitar la
presentación del proyecto.

Por otro lado al comienzo del programa hay una serie de directivas para el compilador: la
resolución del PIC, la frecuencia a la que va a trabajar para la función delay, el PIC que se
va a utilizar, se declaran los fusibles, el tipo de cristal, se elimina el watchdog, se declaran
las librerías a utilizar y se declaran los pines que van conectados a los pulsadores como
variable globales.
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 23

Programa completo:

#include <16f873.h>
#DEVICE ADC=10 //ADC usa 10 bit
#FUSES NOWDT, HS, NOPROTECT,NOLVP,NODEBUG, BROWNOUT,NOCPD,
NOWRT,NOPUT
#USE DELAY(clock=20000000)
#include <lcd.c>
#define mem PIN_C3 //pulsador para grabar en eeprom
#define read PIN_C4 //pulsador para leer memoria eeprom
#define mas PIN_C5 //pulsador para subir posiciones en la lectura de memoria

int memoria=0;
int lectura=0;
float i;
float j;
int m1=0;
int m2=0;
int r1=0;
int r2=0;
int numero=0;
int cm=0;
int cr=0;
int contador=0;
int hola=0;
int a=0;

# INT_AD //interrupción del ADC, se activa cuando esta lista la conversión.

AD_isr()

{
Set_ADC_Channel(0); //especifico el canal para la conversión.
delay_us(1);
i=Read_ADC(ADC_READ_ONLY); //lee el ultimo resultado.
i=10.23*i/1023;
delay_ms(1);
Read_ADC(ADC_START_ONLY); //inicia nueva conversion.
Set_ADC_Channel(1);
delay_us(1);
j=Read_ADC(ADC_READ_ONLY);
j=100*j/1023;
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 24

if(i>7)
{
i=(i+0.021*j-0.525)/(1+0.003*j-0.075);
}
if(i<7)
{
i=(i-0.021*(50-j)+0.525)/(1-0.003*(50-j)+0.075);
}

Read_ADC(ADC_START_ONLY); //inicia nueva conversion.


}

void main()

{
lcd_init();
Setup_ADC_Ports(RA0_RA1_ANALOG_RA3_REF); //configuro como analogica la ra0, la
ra1 y la ra3 como referencia
Setup_ADC(ADC_CLOCK_DIV_32);
enable_interrupts(INT_AD);
enable_interrupts(GLOBAL);
delay_us(1);
Read_ADC(ADC_START_ONLY);

while(1)
{
if(input(mem))
{
delay_ms(20);
if(input(mem))
{
m1=i; //casteo la parte entera de la medición de ph para guardarlo en memoria ya que
la eeprom es de 8 bit
m2=(i - m1)*100; //tomo la parte decimal de la medición de ph y lo grabo en la siguiente
posición de memoria
m2=m2+1;
write_eeprom(cm,m1); //grabo parte entera
memoria++;
cm++;
write_eeprom(cm,m2); //grabo parte decimal
cm++; //contador para grabar datos en la eeprom
memoria++; //contador para mostrar el numero de la medición en pantalla

lcd_enviar(LCD_COMANDO, LCD_CLEAR); //limpio pantalla

r1=read_eeprom(lectura); //leo en eeprom parte entera de la medición


delay_ms(1);
lectura++;
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 25

r2=read_eeprom(lectura); //leo en eeprom parte decimal de la medición


delay_ms(1);
lectura++;
printf(lcd_putc,"memoria %i %i.%i",numero,r1,r2); //muestro en LCD reconstruyendo la
medición
numero++;

while(input(mem)) //while que me permite mantener fija la medición a grabar en


eeprom
{
delay_ms(1);
}

lcd_enviar(LCD_COMANDO, LCD_CLEAR);

if(numero==5) //cuando se completa la memoria vuelve a cero la cuenta y se graba


en la primer posición
{
cm=0;
numero=0;
lectura=0;
}
}
}

while(input(read))
{

if(input(mas))
{
delay_ms(20);

lcd_enviar(LCD_COMANDO, LCD_CLEAR);

while(input(mas)) //while infinito para que el usuario suelte el pulsador


{
delay_ms(1);
}

contador+=2;
cr++; //contador de lectura de memoria

}
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 26

if(contador==0)
{
if(a==0) //para que se borre la pantalla solo una ves en el comienzo del
modo lectura de eeprom
{
lcd_enviar(LCD_COMANDO, LCD_CLEAR);
a=1;
}
}
hola=contador;
hola++;
r1 = read_eeprom(contador);
r2 = read_eeprom(hola);

if (cr==5)
{
contador=0;
cr=0;
}
lcd_enviar(LCD_COMANDO, LCD_HOME);
printf(lcd_putc,"memoria %i %i.%i",cr,r1,r2);

cr=0;

if(a==1) //para que borre solo una ves la pantalla al salir del modo lectura o escritura
{
lcd_enviar(LCD_COMANDO, LCD_CLEAR);
}
a=0;
contador=0;

lcd_enviar(LCD_COMANDO, LCD_HOME);

printf(lcd_putc,"PH:%.2f ",i);
lcd_gotoxy(9,1);
printf(lcd_putc,"T:%.1f",j);
}
}
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 27

HOJA DE ESPECIFICACIONES DE MEDICIONES

Instrumento utilizado: Multímetro


Marca: NOGA NET
Modelo: DT83B
Número de serie: -
Año de fabricación: Aproximadamente año 2006

Rangos/escalas empleadas:

Voltaje DC:

0-200mV
0-2000mV
0-20V

Especificaciones del instrumento:

Multímetro de 3 dígitos y medio.


Máxima representación: 1999

Especificaciones de exactitud a 23ºC ± 5ºC.

RANGO RESOLUCION EXACTITUD


200mV 100uV ± 0,25% de lectura ± 2 Dig

2000mV 1mV ± 0,5% de lectura ± 2 Dig

20V 10mV ± 0,5% de lectura ± 2 Dig

200V 100mV ± 0,5% de lectura ± 2 Dig

1000V 1V ± 0,5% de lectura ± 2 Dig


UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 28

Mediciones de parámetros:

Nº Descripción Fecha Operador Escala Magnit Incertidumbr


utilizada ud e
1 Medición de tensión de 20/01/2009 García C. Luis Volt. DC 0,0mV ± 0,2mV
Offset, amplificador de (200mV)
entrada.
2 Medición señal de prueba 1 20/01/2009 García C. Luis Volt. DC 1600m ± 10mV
amplificador de entrada. (2000mV) V
3 Medición señal de prueba 2 20/01/2009 García C. Luis Volt. DC 2,40V ± 32mV
amplificador de entrada. (20V)
4 Medición señal de prueba, 20/01/2009 García C. Luis Volt. DC 2,80V ± 34mV
desplazador de nivel (20V)
5 Medición salida etapa 20/01/2009 García C. Luis Volt. DC 4,00V ± 40mV
analógica, valor máximo. (20V)
6 Medición alimentación 20/01/2009 García C. Luis Volt. DC 5,02V ± 45,1mV
positiva (20V)
7 Medición alimentación 20/01/2009 García C. Luis Volt. DC -5,01V ± 45,05mV
negativa (20V)
8 Medición tensión de 20/01/2009 García C. Luis Volt. DC 4,02V ± 40,1mV
referencia ADC (20V)

Especificaciones de exactitud soluciones buffer:

Solución pH 7,00
pH solución a 25ºC 7,00 ± 0,02

T (ºC) ΔpH
0 +0.13
10 +0.05
20 +0.02
25 0.00
30 -0.02
40 -0.04
50 -0.05

Solución pH 4,00
pH solución a 25ºC 4,00 ± 0,02

T (ºC) ΔpH
0 +0.05
10 +0.02
20 +0.01
25 0.00
30 +0.01
40 +0.01
50 +0.01
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 29

ESPECIFICACIONES DEL pHMETRO

Rango pH 0.00 – 10.00


Resolución 0.01 pH
Impedancia de entrada 1,5 TOhm
Tiempo de respuesta relativo 30 seg – 95% medición
Rango temperatura 2ºC a 100ºC
Electrodo Denver – 301423.1 / A8
Calibración Manual
Alimentación Fuente simétrica ± 5V
Rango temperatura 2°C a + 100°C
UNIVERSIDAD TECNOLÓGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2 30

BIBLIOGRAFIA

Conceptos de pH

http://www.investigacion.frc.utn.edu.ar/sensores/PH/pH.htm

Fundamentals of pH

http://www.milanco.com/training/fundamen.htm

Notas tecnicas de Denver Instruments

http://www.denverinstrumentusa.com/downloads/technical_notes.php

Electrodos Ion-selectivos

http://en.wikipedia.org/wiki/Ion-selective_electrode

Ecuación de Nernst

http://en.wikipedia.org/wiki/Nernst_equation

pH Electrode Technical Education

http://www.sensorex.com/support/education/pH_education.html

Electrónica Integrada – Millman/Halkias

pH: Concepto y medida

http://www.infoagro.com/abonos/pH_informacion.htm

PROGRAMAS UTILIZADOS

OrCAD 10.5

Proteus 7

WinPic800

CSS

wxMaxima

Gnuplot