Documentos de Académico
Documentos de Profesional
Documentos de Cultura
=
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