Está en la página 1de 30

UNIVERSIDAD TECNOLGICA 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 medicin, un medidor de pH, de
dos dgitos decimales de precisin, mediante el aprendizaje de la teora de funcionamiento
de un sensor de pH y mediante la aplicacin de los conocimientos adquiridos en las materias
de Electrnica Aplicada II, Tcnicas Digitales II y Medidas Electrnicas I durante el ao
2008.

Se considera tambin como objetivo el reunir la mayor cantidad de informacin posible
acerca de la construccin y funcionamiento de este tipo de instrumentos analizando diversas
hojas de datos, manuales de fabricantes y hojas de especificaciones tcnicas.

Nuestro inters en este proyecto se basa en la gran cantidad de aplicaciones que tiene la
medicin precisa de pH. Esta es til en industrias; lcteas, bebidas, alimenticias, alimentos
procesados, control de calidad, acuarios, criaderos de peces, agua, tratamiento de agua,
laboratorio, fotografa, papel, galvanoplastia, agricultura, como tambin en Escuelas,
Universidades, etc.




UNIVERSIDAD TECNOLGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2
2

INTRODUCCION TEORICA

TEORIA DEL pH

La medicin de pH juega un rol importante para identificar los niveles de acidez o alcalinidad
en procesos industriales y de investigacin.
El pH es la medicin de la acidez o alcalinidad de una solucin y puede ser representada por
esta ecuacin:

pH = -log [H+]

Donde [H+] representa la concentracin de iones de hidrgeno en la solucin. Utilizando un
medidor de pH se pueden determinar valores exactos de pH de soluciones. Por ejemplo, en
vez de decir que el jugo de limn es una solucin 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 continuacin se muestra el nivel de pH de algunas sustancias comunes:


UNIVERSIDAD TECNOLGICA 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 especfico
disuelto en una solucin a un potencial elctrico. El voltaje depende de la actividad inica y
de la ecuacin de Nernst. La parte sensible del electrodo se fabrica con una membrana que
responde a iones especficos, en conjunto con un electrodo de referencia el cual completa el
circuito elctrico de medicin 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 elctrico directamente
proporcional al pH de la solucin en la que se encuentra sumergido.
En el caso del electrodo de pH, este responde a iones de hidrgeno [H+].



Dado que el potencial brindado por el electrodo es directamente proporcional al pH de la
solucin, se puede trazar la curva de respuesta de un electrodo, que es idealmente lineal,
pero con una leve curvatura en la prctica.
Esta curva depende del fabricante y su pendiente se atena con el envejecimiento del
electrodo.














UNIVERSIDAD TECNOLGICA 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 variacin esta
descrita por la ecuacin de Nernst, en donde la pendiente de la curva esta idealmente
determinada por la siguiente expresin:

F n
T R
m
k
.
. . 3 , 2
=

En donde:

R es la constante universal de los gases;

(

=
mol K
J
R
.
314472 , 8

Tk es la temperatura absoluta en grados Kelvin;

n es la carga del in (incluyendo el signo) que para el in [H+] vale 1;

F es la constante de Faraday;

(

=
mol
C
F
4
10 . 64853399 , 9

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

| | pH mv m / 1 , 59 =

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 TECNOLGICA 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 vara basndose en la ecuacin de Nernst y se puede expresar
mediante la siguiente relacin:

pH T error A A = 003 , 0

En donde T es la variacin de grados centgrados que hay respecto a 25C, y pH es la
variacin en unidades de pH respecto a un pH 7.
De esta manera, para una medicin de una solucin de pH 4 a 35C nuestro electrodo
brindar un voltaje equivalente a un pH de 4.09 pH y para la misma medicin a 15C, leer
3.91 pH.

La ecuacin muestra que el error de temperatura es funcin tanto de la misma temperatura
como del pH que se mide. No hay error para pH 7 y en 25C.

En los medidores de pH comerciales, se puede mejorar la lectura mediante una
compensacin ya sea manual o automtica del pH en funcin a la temperatura.
Manualmente se logra ingresando mediante un control la temperatura de la solucin en
cuestin, devolviendo el dispositivo una lectura compensada, o corregida al valor que se
espera entregue el electrodo para dicha solucin a 25C.
Una compensacin automtica requiere una lectura constante de la temperatura de la
solucin a travs 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 prctica, cada medicin debe tomarse anotando tanto el pH medido
como la temperatura de la muestra y la composicin de la solucin.

UNIVERSIDAD TECNOLGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2
6

COMPENSACION

Como se dijo anteriormente la variacin de la respuesta del electrodo respecto a la
temperatura puede describirse con la siguiente ecuacin:

pH T error A A = 003 , 0

Por ende:

pH T Vm Vr A A = 003 , 0

Donde Vr es el valor real de la solucin y Vm el valor medido, T es la variacin de grados
centgrados que hay respecto a 25C, y pH es la variacin en unidades de pH respecto a
un pH 7.
A partir de esta ecuacin necesitamos deducir una frmula para compensar la respuesta del
electrodo con dichas variaciones mediante el microcontrolador.

Vamos a considerar dos casos:

- Si pH > 7 utilizamos la siguiente ecuacin:


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

Despejando:

(

+
+
=
075 , 0 . 003 , 0 1
525 , 0 . 021 , 0
T
T Vm
Vr

Donde T es la temperatura en grados centgrados.


- Si pH < 7 utilizamos la siguiente ecuacin:

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

Despejando obtenemos:

(

+
+
=
075 , 0 . 003 , 0 1
525 , 0 . 021 , 0
Tr
Tr Vm
Vr

Donde Tr = 50-T

Aplicando estas dos ecuaciones se puede obtener un valor compensado mediante software.

UNIVERSIDAD TECNOLGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2
7

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 tambin vara con la temperatura.














Estas soluciones son utilizadas en una amplia gama de procesos, siendo uno de ellos la
calibracin de instrumentos medidores de pH.
Dado que la respuesta de un electrodo de vidrio a variaciones de pH es lineal, conociendo la
tensin entregada por el electrodo en dos puntos precisos de pH nos permite conocer la
curva completa. Es por esto que en la calibracin de instrumentos de medicin 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
calibracin habitual del instrumento.
Para obtener una medicin lo mas precisa posible, se debe calibrar el instrumento antes de
cada medicin 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 calibracin en general se efecta 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 estandarizacin).
Posteriormente se procede a calibrar utilizando otra solucin 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 medicin se debe limpiar el electrodo con agua destilada para evitar la
contaminacin de las muestras.
La temperatura tiene dos efectos de interferencia, el potencial de los electrodos y la
ionizacin de la muestra varan. El segundo efecto es inherente de la muestra y solo se toma
en consideracin, anotando la temperatura de la muestra y su pH; para ms exactitud, se
recomienda que la muestra est a 25 C, que es la temperatura de referencia para la
medicin del pH.

UNIVERSIDAD TECNOLGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2
8

DIAGRAMA EN BLOQUES



El sensor de pH es un tipo de electrodo de vidrio con una salida de alta impedancia que
brinda una tensin en milivolts directamente proporcional al pH de la solucin en cuestin.
Es por esto que idealmente se puede medir el pH de una solucin con bastante precisin
aplicando los factores de conversin apropiados.

El electrodo de pH brinda una salida de tensin negativa para soluciones bases y una
tensin positiva para soluciones cidas, dando una tensin de cero para una solucin neutra
(pH 7).

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

La seal conformada es luego llevada a la entrada A/D de un microcontrolador en donde un
programa se encarga de adecuarla para ser leda por un display LCD de 16x2 caracteres
previamente compensando la variacin de respuesta del electrodo respecto a la temperatura
de acuerdo a la ecuacin de Nernst.
Electrodo
pH
Amplificador
Desplazador
de nivel
Conversin
A/D
Lectura
LCD
Sensor
Temperatura
Amplificacin
Compensacin

UNIVERSIDAD TECNOLGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2
9

ACONDICIONAMIENTO DE LA SEAL

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 tensin simple con un
amplificador operacional y medir el valor de salida para dos soluciones de calibracin, para
poder as determinar la pendiente de la recta de respuesta del electrodo, y conocer as sus
valores mximos y mnimos.

En la primera medicin, a una temperatura de alrededor de 28C se obtuvo una diferencia de
tensin entre una solucin 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 tensin, entonces para pH 0 debemos tener
unos 413,23 mV, y simtricamente debemos tener unos -413,23mV para un pH de 14.

De esta manera determinamos los mximos de tensin que entregar el electrodo para
proceder a disear la etapa de acondicionamiento.

El primer paso consiste en llevar estos valores a un rango de tensin manejable por la
entrada analgico 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 sern tomados en cuenta. Dado que el conversor A/D del microcontrolador
es de 10 bits, si queremos elaborar un instrumento con dos dgitos de precisin,
necesitaremos un conversor ms grande, y dado que el rango de pH de 0 a 10 es comn en
los peachmetros comerciales, tomaremos el mismo para nuestro proyecto.

Ahora bien, para obtener la seal deseada debemos efectuar una transformacin lineal en la
recta de respuesta del electrodo, la cual consiste en una amplificacin, una inversin y un
desplazamiento de nivel como se muestra en el grfico siguiente. Ms adelante se cubrir
cada etapa por separado.


UNIVERSIDAD TECNOLGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2
10


UNIVERSIDAD TECNOLGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2
11

Amplificador de entrada

Como se dijo anteriormente, la seal proporcionada por el electrodo de pH es constante para
temperaturas cercanas a la temperatura ambiente (25C) y vara con el tiempo y
envejecimiento del electrodo. Para esto es necesario un sistema que permita amplificar o
atenuar la seal en la medida que sea necesario. Adems 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 configuracin no inversora con ganancia
variable como se muestra a continuacin:




La seal 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 seal 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 seal 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), adems de una corriente de
polarizacin muy pequea (del orden de los 10pA).
La seal ingresa por la entrada no inversora de dicho AO.

La ecuacin de ganancia para esta configuracin es:

RA
RB RA
A
+
=

Donde RB es la resistencia de realimentacin y RA la resistencia conectada entre la entrada
inversora y masa.

R1
39K
C1
2.2n
U1
CA3140
+
3
-
2
V+
7
V-
4
OUT
6
OS1
1
OS2
5
R2
1K
R3
50K
R4
2K2
Vout
5V
-5V
R5
5K
R6
4K7
BNC

UNIVERSIDAD TECNOLGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2
12

Para este circuito utilizamos un potencimetro multivueltas de manera tal que:

RA = R2 + R3

RB = R4 + R3

R3 = R3 + R3 = 50K

El valor mximo de RA se dar cuando R3 sea igual a R3. En este caso RB tendr su valor
mnimo:

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


RA tendr su valor mnimo cuando R3 sea igual a cero, y en este caso RB ser mximo:

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 potencimetro a los niveles que sean necesarios.

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

37 , 1
max
min max
min =
+
=
RA
RB RA
G


UNIVERSIDAD TECNOLGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2
13

Dado que la alimentacin de los AO es de +5V y -5V, no es necesario preocuparse por una
ganancia que lleve la tensin a niveles mayores que los mximos admisibles por las
entradas del microcontrolador, dado que esta nunca sobrepasar los 5V.

El circuito compuesto por R5 y R6 es un circuito de anulacin de tensin de Offset, y es
necesario si se requiere una tensin precisa a la salida del primer amplificador.
La ganancia se fija de manera que la recta tenga lmites de -2,8 y +2,8V



UNIVERSIDAD TECNOLGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2
14

Desplazador de nivel

Una vez amplificada la seal, es necesario invertirla y desplazarla de manera de obtener una
la tensin de salida expresada anteriormente.

Esto se logra mediante un circuito sumador inversor, en donde la ecuacin de
funcionamiento esta dada por:


|
.
|

\
|
+
+

=
7 12 8
5
. 9
R
VAmp
R R
V
R Vout














Si hacemos que R9 sea igual a R7:


|
.
|

\
|
+
+
= VAmp V
R R
R
Vout ) 5 (
12 8
9



Para llevar la curva de respuesta del electrodo a su posicin 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 tensin a la salida del primer
amplificador, y luego invirtiendo el resultado.

U2A
TL084
+
3
-
2
V+
4
V-
11
OUT
1
R7
10K
R8
18K
-5V
R9
10K
VAmp
-5V
-5V
Vout
R12
10K

UNIVERSIDAD TECNOLGICA 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.














Frecuencia de corte:

Hz
C R
f c 7
. 2
1
~

=
t




Sensado de temperatura

Para medir la temperatura de la solucin se utiliza un sensor de temperatura LM35
acondicionado para poder ser sumergido. Dicho sensor brinda una tensin de 10mV por
grado centgrado de temperatura con lo que la nica conformacin de seal 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 mximo valor medido de temperatura (100C) coincida con 4 Volts.


R14
3K9
Vout
R15
1K
U3D
TL084
+
12
-
13
V
+
4
V
-
1
1
OUT
14
-5V
-5V
LM35
R13
1K5
R10
1M
C2
22n
-5V
-5V
R11
1M
C3
22n
U3B
TL084
+
5
-
6
V+
4
V-
11
OUT
7
-5V
-5V
U3C
TL084
+
10
-
9
V+
4
V-
11
OUT
8
Vin
Salida a A/D

UNIVERSIDAD TECNOLGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2
16

CIRCUITO COMPLETO

R
1
4
3
K
9
R
1
3
9
K
C
1
2
.2
n
U
1
C
A
3
1
4
0
+
3
-
2
V +
7
V -
4
O
U
T
6
O
S
1
1
O
S
2
5
R
2
1
K
R
3
5
0
K
R
4
2
K
2
T
E
M
P
E
R
A
T
U
R
A
5
V
-5
V
R
1
5
1
K
R
5
5
K
R
6
4
K
7
U
2
A
T
L
0
8
4
+
3
-
2
V +
4
V -
1 1
O
U
T
1
R
7
1
0
K
R
8
1
8
K
-5
V
R
9
1
0
K
-5
V
-5
V
R
1
0
1
M
C
2
2
2
n
-5
V
-5
V
R
1
1
1
M
C
3
2
2
n
U
3
B
T
L
0
8
4
+
5
-
6
V +
4
V -
1 1
O
U
T
7
-5
V
-5
V
R
1
2
1
0
K
U
3
C
T
L
0
8
4
+
1
0
-
9
V +
4
V -
1 1
O
U
T
8
B
N
C
P
H
U
3
D
T
L
0
8
4
+
1
2
-
1
3
V +
4
V -
1 1
O
U
T
1
4
-5
V
-5
V
L
M
3
5
R
1
3
1
K
5

UNIVERSIDAD TECNOLGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2
17

SECCION DIGITAL

ESQUEMA CIRCUITAL:







UNIVERSIDAD TECNOLGICA 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
caractersticas:



Item Valor
Memoria de programa 7.2 KBytes (8192 instrucciones)
Memoria SRAM 192 KBytes
Memoria EEPROM 128 KBytes
Nmero de E/S 22
Nmero de ADC 5 (10 Bits)
Nmero de PWM 2
SPI Si
I2C Si (Master)
USART Si
Timers 8 Bits 2
Timers16 Bits 1
Comparadores 2
Clock 0-20 MHz
Nmero de pines 28
Cpsula PDIP, SOIC, SSOP, QFN

UNIVERSIDAD TECNOLGICA 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 mximos 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 ms 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 segn la frecuencia a la que oscile
el cristal ser el valor de los capacitores que se deben colocar.

Lo fundamental en la polarizacin del PIC es que debe tener una alimentacin bien
estabilizada, tanto para la tensin de referencia como para la alimentacin del PIC, esto nos
garantiza una conversin correcta de los valores de pH y temperatura.

Con respecto a la alimentacin del LCD debemos fijar dos niveles de corriente, el nivel de
corriente del LED de iluminacin de la pantalla y el nivel de contraste de los caracteres,
adems se debe colocar una resistencia de pull up 10K en la lnea enable del mismo.

Las seales de pH y temperatura ya acondicionadas ingresan por las entradas del ADC
donde sern tratadas por el microcontrolador para su adecuacin y presentacin en el
display como se explica a continuacin.

UNIVERSIDAD TECNOLGICA 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 conversin digital de las
muestras y el grabado en memoria de las mediciones de pH, a continuacin detallaremos
estas secciones del cdigo.


Conversin digital:

Para la conversin digital de las mediciones, en primera instancia debemos saber que rango
de ph necesitamos medir y con que resolucin, lo mismo para la temperatura. En este caso,
ya que contbamos con un pic16f873 y queramos medir ph con dos cifras decimales,
elegimos el rango de 0 a 10.23 grados de ph logrando una resolucin de 10.23/1023=0.01.
Por otro lado, para la medicin de la temperatura elegimos el rango de 0c a 100C, la
resolucin es por ende 100/1023=0.097752, en el programa mostramos solo una cifra
decimal.

La conversin la lleva a cabo la funcin AD_isr, que se llama constantemente a travs de la
interrupcin del ADC del PIC una ves que este lista la conversin.
En ella se configuran los canales del conversor a utilizar, se realiza la lectura de la
conversin y el pasaje de hexadecimal (resultado de la conversin) a pH o temperatura.


# INT_AD //interrupcin del ADC ,se activa cuando esta lista la conversin.

AD_isr()
{
Set_ADC_Channel(0); //especifico el canal para la conversin.
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 TECNOLGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2
21

Condicin de compensacin:


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 seccin importante del cdigo en la que se
configura el resto parmetros necesarios para el manejo del ADC:

Setup_ADC_Ports(RA0_RA1_ANALOG_RA3_REF); //configuro como analgica la ra0, la
ra1 y la ra3 como referencia.

Setup_ADC(ADC_CLOCK_DIV_32);
enable_interrupts(INT_AD); // habilito interrupcin del ADC.
enable_interrupts(GLOBAL); //habilito la interrupcin 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 utilizacin de una serie de funciones correspondientes a la
librera LCD.C, estas se detallan a continuacin:

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

lcd_putc(c);
//Visualiza c en la siguiente posicin del display.

Caracteres especiales de control:

\f Borrar display
\n Saltar a la segunda lnea
\b Retroceder una posicin.

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


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

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

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

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

Grabacin en memoria EEPROM:

Con respecto a la grabacin en memoria, tambin es un proceso sencillo, simplemente se
realiza a travs de las siguientes funciones:

write_eeprom(cm,m1); //m1 es el dato y cm la posicin de memoria
r1=read_eeprom(lectura); //en r1 se guarda el dato de la posicin 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 interrupcin, vale
aclarar que unos de los problemas que trae aparejado este procedimiento es que se debe
mantener presionado el pulsador hasta que la ejecucin 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 accin
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 medicin 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 seccin del programa se realiza un casteo de la parte entera y la parte decimal de
la medicin 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 travs 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 medicin y para facilitar la
presentacin del proyecto.

Por otro lado al comienzo del programa hay una serie de directivas para el compilador: la
resolucin del PIC, la frecuencia a la que va a trabajar para la funcin delay, el PIC que se
va a utilizar, se declaran los fusibles, el tipo de cristal, se elimina el watchdog, se declaran
las libreras a utilizar y se declaran los pines que van conectados a los pulsadores como
variable globales.

UNIVERSIDAD TECNOLGICA 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 //interrupcin del ADC, se activa cuando esta lista la conversin.

AD_isr()

{
Set_ADC_Channel(0); //especifico el canal para la conversin.
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 TECNOLGICA 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 medicin de ph para guardarlo en memoria ya que
la eeprom es de 8 bit
m2=(i - m1)*100; //tomo la parte decimal de la medicin de ph y lo grabo en la siguiente
posicin 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 medicin en pantalla

lcd_enviar(LCD_COMANDO, LCD_CLEAR); //limpio pantalla

r1=read_eeprom(lectura); //leo en eeprom parte entera de la medicin

UNIVERSIDAD TECNOLGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2
25

delay_ms(1);
lectura++;
r2=read_eeprom(lectura); //leo en eeprom parte decimal de la medicin
delay_ms(1);
lectura++;
printf(lcd_putc,"memoria %i %i.%i",numero,r1,r2); //muestro en LCD reconstruyendo la
medicin
numero++;

while(input(mem)) //while que me permite mantener fija la medicin 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 posicin
{
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 TECNOLGICA 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 TECNOLGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2
27

HOJA DE ESPECIFICACIONES DE MEDICIONES

Instrumento utilizado: Multmetro
Marca: NOGA NET
Modelo: DT83B
Nmero de serie: -
Ao de fabricacin: Aproximadamente ao 2006


Rangos/escalas empleadas:

Voltaje DC:

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



Especificaciones del instrumento:

Multmetro de 3 dgitos y medio.
Mxima representacin: 1999


Especificaciones de exactitud a 23C 5C.

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 TECNOLGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2
28

Mediciones de parmetros:

N Descripcin Fecha Operador Escala
utilizada
Magnit
ud
Incertidumbr
e
1 Medicin de tensin de
Offset, amplificador de
entrada.
20/01/2009 Garca C. Luis Volt. DC
(200mV)
0,0mV 0,2mV
2 Medicin seal de prueba 1
amplificador de entrada.
20/01/2009 Garca C. Luis Volt. DC
(2000mV)
1600m
V
10mV
3 Medicin seal de prueba 2
amplificador de entrada.
20/01/2009 Garca C. Luis Volt. DC
(20V)
2,40V 32mV
4 Medicin seal de prueba,
desplazador de nivel
20/01/2009 Garca C. Luis Volt. DC
(20V)
2,80V 34mV
5 Medicin salida etapa
analgica, valor mximo.
20/01/2009 Garca C. Luis Volt. DC
(20V)
4,00V 40mV
6 Medicin alimentacin
positiva
20/01/2009 Garca C. Luis Volt. DC
(20V)
5,02V 45,1mV
7 Medicin alimentacin
negativa
20/01/2009 Garca C. Luis Volt. DC
(20V)
-5,01V 45,05mV
8 Medicin tensin de
referencia ADC
20/01/2009 Garca C. Luis Volt. DC
(20V)
4,02V 40,1mV

Especificaciones de exactitud soluciones buffer:

Solucin pH 7,00
pH solucin a 25C 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

Solucin pH 4,00
pH solucin a 25C 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 TECNOLGICA NACIONAL - F.R.C.
TRABAJO FINAL INTEGRADOR
NOMBRE/LEGAJO CURSO HOJA
4R2
29

ESPECIFICACIONES DEL pHMETRO

Rango pH 0.00 10.00
Resolucin 0.01 pH
Impedancia de entrada 1,5 TOhm
Tiempo de respuesta relativo 30 seg 95% medicin
Rango temperatura 2C a 100C
Electrodo Denver 301423.1 / A8
Calibracin Manual
Alimentacin Fuente simtrica 5V
Rango temperatura 2C a + 100C


UNIVERSIDAD TECNOLGICA 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

Ecuacin de Nernst

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

pH Electrode Technical Education

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

Electrnica 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

También podría gustarte