Está en la página 1de 18

Electrónica Analógica

Actividad Dirigida

Medidor de pH
Con control de histéresis de medida

Jose Manuel López Torres

15 de Enero de 2015
Medidor de pH Jose Manuel López Torres EUETIB
15/01/2015

Índice
0. Introducción……………………………………………………………………….……………………………………2
1. Electrodo de pH……………………………………………………………………………………………………..…3
2. Acondicionamiento de señal…………………………………………………………………………………….3
a. Amplificador no inversor……………………………………………………………………………..4
b. Restador inversor……………………………………………………………………………………..…5
3. Circuito de alimentación………………………..………………………………………………………………..6 1

4. Shield Arduino.………………………………………………………………………………………………………..7
5. Arduino………….………………………………………………………………………………………………………..8
a. Esquema de conexionado…………………………………………………………………………….8
b. Funcionalidad digital…………..……………………………………………………………………….9
c. Calibrado del sistema………………………………..……………………………………………….10
d. Programación……………………………………..……..………………………………………………11
6. Lisado de material y presupuesto del proyecto……………………………………………………....15
7. Conclusiones……………………………………………………………………………………………….…………16
8. Posibles Mejoras….………………………………………………………………………………………………..16
9. Bibliografía y web grafía…………………….…………………………………………………………….…….17
Medidor de pH Jose Manuel López Torres EUETIB
15/01/2015

0. INTRODUCCIÓN
La realización de este prototipo ha sido promovida por mi interés personal en el control de
variables que determinen la calidad del agua, aún y no siendo la química una de mis pasiones,
la agricultura intensiva y la cría o mantenimiento de peces requieren de ciertos cuidados
respecto a la calidad del ‘alimento’ o de su hábitat natural que en muchas ocasiones es muy
ventajoso, pueda ser automatizado el proceso de acondicionamiento de dichos medios.
2
De esta manera, esta actividad se centra exclusivamente en tratar de iniciar al realizador y a
posteriores lectores en el funcionamiento de uno de los elementos más utilizados a día de hoy,
al menos a un nivel no industrial, para la monitorización de una de las propiedades de los
medios acuáticos como es el pH.

Se realizará una breve explicación del funcionamiento de un electrodo de PH, la realización de


un circuito analógico para la adecuación de la señal para un sistema basado en Arduino y la
construcción y calibración de un prototipo base con el cual poder ver en funcionamiento el
circuito correspondiente a los cálculos realizados.
Medidor de pH Jose Manuel López Torres EUETIB
15/01/2015

1. Electordo de pH
Como nos indica la propia real academia española, se define pH como:
<<Índice que expresa el grado de acidez o alcalinidad de una disolución. Entre 0 y 7 la disolución es ácida, y de 7 a
14, básica. >>

Para llevar a cabo la realización de esta actividad se hace uso de un electrodo de pH como el
que se muestra en la Figura1, este electrodo es de procedencia asiática y por lo tanto no se
tiene conocimiento de sus especificaciones técnicas, por lo cual, los pasos siguientes se 3

realizarán en base a un conjunto de pruebas para hallar la sensibilidad de esta sonda y así
poder hallar las especificaciones básicas a tener en cuenta para el acondicionamiento de señal.
De esta manera se establece que los valores para pH 0 y 14 son de 300/350m V y -300/-350m
V aproximadamente siendo el valor 0 el correspondiente a pH 7 y entendiendo que el
comportamiento es de generación de una curva tensión lineal correspondiente a la variación
del pH de la disolución respecto de la referencia de 0 – pH7.

Figura 1. Electrodo de PH utilizada durante la actividad

2. Acondicionamiento de señal
El acondicionamiento de señal procedente del electrodo de pH utilizado en este montaje, se
procesa mediante dos etapas analógicas para su posterior lectura digital.

Estas dos etapas se pueden observar de manera conjunta en la Figura 2, en primer lugar se
amplifica la señal de tensión procedente del electrodo gracias a un amplificador operacional
en configuración de amplificador no inversor, y posteriormente se añade un offset a la señal
procesada por el amplificador con un amplificador operacional en configuración de restador
inversor. De esta manera, conseguimos que la pequeña señal de tensión producida por la
medición de pH de nuestro electrodo, que bien puede ser de polaridad positiva o negativa, se
halle en un rango de 0 V a 4 V siendo 0 y 14 los valores de pH respectivos.

Figura 2. Etapa de acondicionamiento de señal procedente de un electrodo de pH


Medidor de pH Jose Manuel López Torres EUETIB
15/01/2015

a. Amplificador no inversor
Partiendo de datos experimentales, la señal en tensión proporcionada por el electrodo estará
comprendido entre -350m V y 350m V, de esta manera, y como hemos decidido que el valor
de entrada al convertidor analógico digital del módulo Arduino sea de 4V, debemos amplificar
estas señales para que sean comprendidas entre -2 V y 2V respectivamente. Esta amplificación
se llevara a cabo mediante un amplificador operacional TL081 alimentado por una tensión
simétrica de +5V y -5V 4

Como se deben realizar pruebas previas antes de conectar el prototipo al módulo se ha


decidido incluir y una circuitería que se ha hallado en las referencias mediante la cual se puede
seleccionar que tipo de amplificación queremos a la salida de nuestro amplificador,
seleccionando entre la ganancia ajustable y una prefijada, de esta manera, se fija una ganancia
aproximada de 5.27 con dos resistencias fijas que nos permitirán comprobar el correcto
funcionamiento.

Como se observa en la Figura 3, se ha añadido un potenciómetro entre los pines 1 y 5


correspondientes al Balance del operacional, o la corrección de Offset pudiendo eliminar así
posibles offset del propio operacional.

Figura 3. Amplificador no inversor con selección de ganancia

Y por último observamos como en la segunda conexión del interruptor que nos permite
seleccionar entre modelos de amplificación hallamos la ganancia que nos permitirá el ajuste de
ganancia deseado para nuestro prototipo. Este modelo sigue los siguientes criterios:

Tensión de entrada máxima: 350m V Tensión de entrada mínima: -350m V

Tensión máxima deseada: 2 V Tensión mínima deseada: -2 V

=
Medidor de pH Jose Manuel López Torres EUETIB
15/01/2015

Que fijando las resistencias R7 y R6 de la figura con los valores 270K y 30K respectivamente y
colocando un potenciómetro de ajuste de 100K nos queda:

=
=
5

De esta manera aseguramos que la ganancia se halla entre las posibles según la posición
de nuestro potenciómetro y en caso de obtener sensibilidades distintas a la del electrodo
utilizado en este prototipo, el sistema continuaría funcionando, así como la calibración
correcta del sistema independientemente de la tolerancia de los componentes, ya que
esta afectaría en mayor medida a las resistencia de valor alto.

b. Restador inversor
Una vez adecuada la amplitud de la señal de entrada, se debe añadir un offset que nos permita
obtener la entrada al conversor analógico digital deseada de 0 – 4 V. Para ello utilizamos un
restador inversor el cual sigue la siguiente ecuación de comportamiento:

Siguiendo esta ecuación establecemos R3 y R1 a un valor óhmico igual de 10K para no


amplificar la entrada V1 y colocamos un potenciómetro de 100K a modo de ajuste para V2 que
será de 5 V, de esta manera:

De esta manera, el potenciómetro nos permitirá ajustar este valor para minimizar el efecto de
las tolerancias de los componentes.

Como se deben realizar pruebas previas antes de conectar el prototipo al módulo se ha


decidido incluir y una circuitería que se ha hallado en las referencias mediante la cual se puede
seleccionar el uso de la tensión de referencia o no como se muestra en la Figura4.
Medidor de pH Jose Manuel López Torres EUETIB
15/01/2015

Figura 4. Restador inversor con el cual se aplica un offset a la señal de salida del amplificador

3. Circuito de alimentación
Los amplificadores operacionales utilizados en la adecuación de la señal procedente del
electrodo utilizan una alimentación simétrica de +/- 5 V. Teniendo en cuenta que podemos
conectar a modo de shield nuestro prototipo, debemos generar esta alimentación a partir de la
alimentación del módulo Arduino.

Teniendo en cuenta que Alimentamos a 12V desde un adaptador de corriente todo el sistema,
y que no tendremos posibilidad de utilizar dos sistemas de alimentación como pueden ser
baterías, se opta por la utilización de un circuito integrado ICL7660 el cual, mediante la
utilización de interruptores en continua oscilación y un condensador, genera una tensión igual
a la aplicada en el pin de tensión negativa pero con un cambio de polaridad. De esta manera ya
hemos conseguido una alimentación simétrica de +/- 11.5V, debido a que el módulo Arduino
incorpora un diodo rectificador.

Por último y como se muestra en la Figura 5, mediante dos reguladores, 7805 y 7905 y sus
correspondientes condensadores, conseguimos una alimentación simétrica de +/- 5 V.

Figura 5. Etapa de generación de alimentación simétrica +/-5 V a partir de una tensión de entrada mínima de 7,6 V
Medidor de pH Jose Manuel López Torres EUETIB
15/01/2015

4. Shield Arduino
Toda la circuitería nombrada en el apartado 3, así como el conexionado del visualizador LCD
utilizado para la visualización y los indicadores LED se han montado sobre una placa de PCB a
topos de paso 2.54 mm como se puede observar en las Figuras 6 y 7.

Figura 6. Cara TOP del prototipo shield para Arduino construido para esta actividad

Figura 7. Cara BOTTOM del prototipo shield para Arduino construido para esta actividad

Esta shield se conecta directamente sobre el módulo Arduino Mega 2560 mediante los pin
dorados sujetos en la parte inferior. De esta manera se consigue un bloque funcional.
5. Arduino
a. Esquema de conexionado

Título del diseño: Medidor de pH Fecha: 12/01/2015


Autor: Jose Manuel López Torres Página: 1 de 1
Revisión: 0 Hora: 17:47:28
b. Funcionalidad digital
La programación cargada en nuestro módulo Arduino nos permite varias
funcionalidades básicas para llevar a cabo una monitorización del pH adquirido
mediante la etapa de adquisición analógica conectada al convertidor analógico digital
incorporado en Arduino.
En primer lugar cabe destacar la funcionalidad visual mediante el visualizador LCD
como se muestra en las Figuras 8,9 y 10.
La funcionalidad de Medidor, se encarga de la visualización de la Lectura actual de pH,
una consigna y unas histéresis superior e inferior configurables mediante el siguiente
menú al que accederemos pulsando de manera continuada el botón “Modo”.

Figura 8. Pantalla de visualización en Modo medida

La funcionalidad Configuración mediante el indicador “<” nos permite ajustar los valores,
consigna e histéresis mediante el uso de los botones “+” y “-“de manera que nos
desplazaremos con pulsaciones leves del botón “Modo”.

Figura 9. Pantalla de visualización en Modo configuración

Pulsando de nuevo de manera prolongada el botón “Modo” entramos en el menú de


calibración, donde nos mostrará en tiempo real las lecturas del ADC a modo de cuentas, así
como los valores máximo y mínimo registrados por el sistema mediante los cuales se obtiene
la media aritmética para la determinación del pH de la disolución así mismo se muestra el
estado de los botones “+” y “-“para corroborar su correcto funcionamiento y configuración.

Figura 10. Pantalla de visualización en Modo calibración

Para volver al modo de medida simplemente debe volver a mantenerse pulsado el botón
“Modo” de manera prolongada.
Medidor de pH Jose Manuel López Torres EUETIB
15/01/2015

Paralelamente al modo de funcionamiento de visualización y mientras nos encontremos en los


Modos de Medidor y Configuración, según se cumplan los estados de nivel bajo, correcto o
alto, se encenderán los indicadores LED como se muestra en la Figura 11.

10

Figura11. Estados de los indicadores LED (Low - OK - UP)

En el modo de calibración y para comprobar el correcto funcionamiento de los indicadores,


estos de encontraran encendidos en caso de correcto funcionamiento.

c. Calibrado del sistema


Para la realización de un sistema de pH como el estudiado en esta actividad es necesaria la
utilización de Buffers de calibración de disoluciones calibradas previamente, en este caso se ha
hecho uso de un buffer de pH 7 y 4 para el ajuste de 0 y el ajuste de ganancia del sistema
analógico. Los componentes utilizados para la calibración del prototipo su pueden observar en
la Figura 12.

De esta manera se debe poner el sistema en modo calibración y sumergir el electrodo en la


solución de pH7, una vez visualizado que la lectura del convertidor analógico digital se
estabiliza, ajustar el potenciómetro de referencia hasta conseguir una lectura de pH 7 en el
sistema y 409 - 410 cuentas del ADC.

Una vez ajustado el 0, lavar el electrodo en agua destilada con mucho cuidado y dejar lo más
limpio posible para no contaminar el buffer de pH 4 donde se debe sumergir de nuevo y
ajustar el potenciómetro de ganancia hasta lograr una lectura de pH4 en el sistema.

Se debe repetir tantas veces como sea necesario para poder asegurar un mínimo de calidad en
las lecturas recibidas por nuestro sistema.

Figura12. Material utilizado en la calibración del prototipo (Buffer pH 4 y 7, agua destilada, y bote mezclado para limpieza)
Medidor de pH Jose Manuel López Torres EUETIB
15/01/2015

d. Programación
/* Medidor de PH con control de medida por histéresis

La programación del siguiente sketch se basa en la adquisición de datos mediante el pin


A0 de nuestro Arduino Mega, señal comprendida entre 0-4V las cuales pertenecen a valores
de pH 0 y 14 respectivamente.

Debido a fluctuaciones de lectura detectadas durante el desarrollo del prototipo de ha


incluido un filtrado digital basado en una media aritmetica de los valores leidos, como
se puede observar en el código encargado.
11
Además se incluye la visualización mediante pantalla de cristal líquido mediante la util
ización de la libreria LiquidCrystal proporcionada por los desarrolladores de la misma
e incluida por defecto en las librerías por defecto de Arduino 1.0.5-r2 utilizada en el
desarrollo de este prototipo.

La interfaz de usuario esta basada en 3 pulsadores encargados del cambio de modo de oper
ación,
Medidor-Configuración-
Calibración, pudiendo navegar entre ellas en ese orden gracias a la Pulsación continuada
del boton Mode(pin25), además, la modificación de los valores consigna, y los valores d
e 'histeresis' pueden ser modificados mediante los botones UP(pin31) y DOWN(pin33)

Por ultimo, se incluyen 3 indicadores LED encargados de la visualización del estado del
pH Medido respecto de la consigna e histeresis configurados, de la siguiente manera:
- Sobrepaso (rojo-pin38)
- Correcto (verde-pin40)
- Por debajo (rojo-pin42) */

// Libreria encargada de la configuración y visualización mediante LCD


#include <LiquidCrystal.h>
// Inicialización de los pins de conexión del LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// Constantes encargadas de la identificación del PIN al que se conectan los indicadores
const int sensorPin = A0;
const int buttonMode = 25;
const int buttonUp = 31;
const int buttonDown = 33;
const int PHUP = 38;
const int PHOK = 40;
const int PHLOW = 42;
//variables utilizadas durante la programación
int sensorValue = 0;
int valuemax=0;
int valuemin=999;
int BMode = 1;
int Mode = 0; //Modo inicial de Visualización
int Up = 1; //Se activa a nivel bajo
int Down = 1; //Nivel bajo
int counter = 0;
int consigna = 70; //PH7.0 = referencia predefinida
int sel=0;
int histup = 1;
int histdown = 1;
int newmax = 0;
int newmin = 0;
unsigned long pHvalue;
boolean changeMode = true;
boolean calibracion = false;

void setup(){
lcd.begin(20, 4); //Configuración de LCD 20 caracteres x 4 líneas
//Configuración de pines de entrada
pinMode(buttonMode, INPUT);
pinMode(buttonUp, INPUT);
pinMode(buttonDown, INPUT);
pinMode(PHUP, OUTPUT);
pinMode(PHOK, OUTPUT);
pinMode(PHLOW, OUTPUT);
}

void loop() {
//Lectura del valor analógico
sensorValue = analogRead(sensorPin);
Medidor de pH Jose Manuel López Torres EUETIB
15/01/2015
//**********************************************************************************
//Proceso digital que asegura que cada, como mínimo 10 lecturas, el valor de
//pH medido es el que se encuentra en el sistema en media aritmética, dado que tras
//la lectura directa se ha detectado una oscilación de la lectura de unas 4 cuentas
//alrededor de esta media
//**********************************************************************************
/*Comprobamos si el valor leído es mayor o igual al valor máximo establecido
o a una distancia de 15 cuentas del adc respecto del minimo (valor empírico
para estabilidad)*/
if(sensorValue>=valuemax||sensorValue>=valuemin+15){
valuemax = sensorValue;
newmax=0; //reset de contador 12
}
else newmax++; //en caso contrario sumamos uno al contador de lecturas no guardadas
if(newmax>=10){ //si en 10 lecturas no hemos guardado, refrescamos el valor
newmax = 0; //reset de contador
if(sensorValue>=(valuemin+(valuemax-valuemin)/2))valuemax=sensorValue;
}
/*Comprobamos si el valor leido es menor o igual al valor minimo establecido
o a una distancia de 15 cuentas del adc respecto del máximo (valor empírico
para estabilidad)*/
if((sensorValue<valuemax)&&(sensorValue<=valuemin||sensorValue<=valuemax-15)){
valuemin = sensorValue;
newmin = 0; //reset de contador
}
else newmin++; //en caso contrario sumamos uno al contador de lecturas no guardadas
if(newmin>=10){ //si en 10 lecturas no hemos guardado, refrescamos el valor
newmin = 0; //reset de contador
if(sensorValue<=(valuemin-(valuemax-valuemin)/2))valuemin=sensorValue;
}
/* En caso de detectar que hay una distancia mayor a 10 cuentas (valor empírico)
entre los valores establecidos se resetean dichos valores a la lectura actual*/
if((valuemax-valuemin)>=10){
valuemax=sensorValue;
valuemin=sensorValue;
}
//Media aritmética para la visualización de medida
pHvalue = (((valuemax-valuemin)/2+valuemin)*7)/41;

//************************************************************************************
// Modo de visualización
//************************************************************************************
if(Mode==0){
if (changeMode){//Imprimimos estos valores, solo en caso que hayamos cambiado d modo
changeMode = false;
lcd.clear();
lcd.print("=> MEDIDOR DE PH <=");
lcd.setCursor(0, 1);
lcd.print("Lectura: __,_");
lcd.setCursor(0, 2);
lcd.print("Consigna: __,_");
lcd.setCursor(0, 3);
lcd.print("Hist: +__,_/-__,_");
}
lcd.setCursor(10, 1);
lcd.print(pHvalue/100);
lcd.print((pHvalue%100)/10);
lcd.setCursor(13, 1);
lcd.print((pHvalue%100)%10);
lcd.setCursor(10, 2);
lcd.print(consigna/100);
lcd.print((consigna%100)/10);
lcd.setCursor(13, 2);
lcd.print((consigna%100)%10);
lcd.setCursor(7, 3);
lcd.print(histup/100);
lcd.print((histup%100)/10);
lcd.setCursor(10, 3);
lcd.print((histup%100)%10);
lcd.setCursor(13, 3);
lcd.print(histdown/100);
lcd.print((histdown%100)/10);
lcd.setCursor(16, 3);
lcd.print((histdown%100)%10);
}
Medidor de pH Jose Manuel López Torres EUETIB
15/01/2015
//************************************************************************************
// Modo de Configuración
//************************************************************************************
if(Mode==1){
if (changeMode){//Imprimimos estos valores, solo en caso que hayamos cambiado d modo
changeMode = false;
lcd.clear();
lcd.print("=> CONFIGURACION <=");
lcd.setCursor(0, 1);
lcd.print("Consigna: __,_");
lcd.setCursor(0, 2);
lcd.print("Histeresis(+): __,_"); 13
lcd.setCursor(0, 3);
lcd.print("Histeresis(-): __,_");
}
lcd.setCursor(19, sel+1);
lcd.write(60);
if(sel>=1) lcd.setCursor(19, sel);
if(sel<=0) lcd.setCursor(19, 3);
lcd.write(254);
lcd.setCursor(15, 1);
lcd.print(consigna/100);
lcd.print((consigna%100)/10);
lcd.setCursor(18, 1);
lcd.print((consigna%10));
lcd.setCursor(15, 2);
lcd.print(histup/100);
lcd.print((histup%100)/10);
lcd.setCursor(18, 2);
lcd.print((histup%100)%10);
lcd.setCursor(15, 3);
lcd.print(histdown/100);
lcd.print((histdown%100)/10);
lcd.setCursor(18, 3);
lcd.print((histdown%100)%10);
}
//************************************************************************************
// Modo de Calibración
//************************************************************************************
if(Mode==2){
if (changeMode){//Imprimimos estos valores, solo en caso que hayamos cambiado d modo
changeMode = false;
calibracion=true;
lcd.clear();
lcd.print("==> CALIBRACION <==");
lcd.setCursor(0, 1);
lcd.print("ADC: ____ > PH: __,_ ");
lcd.setCursor(0, 2);
lcd.print("Max: ____ Min: ____");
lcd.setCursor(0, 3);
lcd.print("UP:_ DOWN:_");
}
lcd.setCursor(5, 1);
lcd.print(sensorValue/1000);
lcd.print((sensorValue%1000)/100);
lcd.print((sensorValue%100)/10);
lcd.print(sensorValue%10);
lcd.setCursor(16, 1);
lcd.print(pHvalue/100);
lcd.print((pHvalue%100)/10);
lcd.setCursor(19, 1);
lcd.print((pHvalue%10));
lcd.setCursor(5, 2);
lcd.print(valuemax/1000);
lcd.print((valuemax%1000)/100);
lcd.print((valuemax%100)/10);
lcd.print(valuemax%10);
lcd.setCursor(16, 2);
lcd.print(valuemin/1000);
lcd.print((valuemin%1000)/100);
lcd.print((valuemin%100)/10);
lcd.print(valuemin%10);
lcd.setCursor(3, 3);
lcd.print(Up);
lcd.setCursor(15, 3);
lcd.print(Down);
}
Medidor de pH Jose Manuel López Torres EUETIB
15/01/2015
else calibracion=false;
//************************************************************************************
// Botón Modo
//************************************************************************************
BMode = digitalRead(buttonMode);
counter = 0;
while(!BMode){
BMode = digitalRead(buttonMode);
delay(1); //anti-rebote
if(counter<=1023) counter = counter++; //pulsación larga
else {
counter=0; 14
Mode=Mode++;
if(Mode>=3) Mode=0;
changeMode = true;
break;
}
}
if((counter>=1)&&(counter<=1023)&&(Mode==1)){ //Si se ha pulsado pero no se llega a
cambio de modo
sel = sel++; //cambio de slección en configuración
if(sel>=3) sel = 0;
}
//************************************************************************************
// Boton +
//************************************************************************************
/*Bloqueamos el valor maximo asumible mediante consigna + histeresis superior y el
mínimo consigna - histeresis inferior a un valor no comprendido ente 0 y 140*/
Up = digitalRead(buttonUp);
if(!Up){
if(Mode==1&&sel==0){
if(consigna<140) consigna++;
if(consigna+histup>140) histup--;
if(consigna-histdown<0) histdown--;
}
if(Mode==1&&sel==1){
if((consigna+histup)<140) histup++;
}
if(Mode==1&&sel==2){
if((consigna-histdown)>0) histdown++;
}
}
//************************************************************************************
// Botón -
//************************************************************************************
/*Bloqueamos el valor maximo asumible mediante consigna + histeresis superior y el
mínimo consigna - histeresis inferior a un valor no comprendido ente 0 y 140*/
Down = digitalRead(buttonDown);
if(!Down){
if(Mode==1&&sel==0){
if(consigna>0) consigna--;
if(consigna+histup>140) histup--;
if(consigna-histdown<0) histdown--;
}
if(Mode==1&&sel==1){
if(histup>0) histup--;
}
if(Mode==1&&sel==2){
if(histdown>0) histdown--;
}
}
//************************************************************************************
//Estado de nivel (LED)
//************************************************************************************
if(pHvalue<(consigna-histdown)||calibracion==true) digitalWrite(PHLOW, LOW);
else digitalWrite(PHLOW, HIGH);
if((pHvalue<=(consigna+histup)&&pHvalue>=(consigna-histdown))||calibracion==true)
digitalWrite(PHOK, LOW);
else digitalWrite(PHOK, HIGH);
if(pHvalue>(consigna+histup)||calibracion==true) digitalWrite(PHUP, LOW);
else digitalWrite(PHUP, HIGH);
delay(200);
}
Medidor de pH Jose Manuel López Torres EUETIB
15/01/2015

6. Lisado de material y presupuesto del proyecto


A continuación se detalla la lista de precios de los componentes y elementos utilizados para el
montaje y calibración del prototipo de esta actividad:
Presupuesto de Materiales: MEDIDOR PH Fecha: 12/01/2015 (IVA inclido)
Concepto Proveedor Precio unitario
Cantidad Subtotal
Componentes
Display LCD ASIA 7,83 € 1 7,83 € 15
Arduino Mega 2560 (incl. cable USB) ASIA 11,08 € 1 11,08 €
Adaptador de corriente 230 V AC -> 3-12V DC Diotronic 10,02 € 1 10,02 €
Sonda PH 0-14 conector BNC ASIA 8,06 € 1 8,06 €
Ptenciometro multivuelta 25 100K Diotronic 0,54 € 3 1,62 €
Pulsador DIP Diotronic 0,19 € 3 0,57 €
Dip switch 2pos Diotronic 0,36 € 2 0,72 €
LM358 Diotronic 0,12 € 1 0,12 €
TL081 Diotronic 0,21 € 1 0,21 €
ICL7660 Diotronic 0,67 € 1 0,67 €
Regulador de Tensión 7805 Diotronic 0,15 € 1 0,15 €
Regulador de Tensión 7905 Diotronic 0,15 € 1 0,15 €
Condensador 100pF Diotronic 0,05 € 1 0,05 €
Condensador 10uF Diotronic 0,07 € 2 0,13 €
Condensador 100uF Diotronic 0,07 € 2 0,13 €
Condensador 47nF Diotronic 0,05 € 2 0,09 €
Resistencia 1K1 Diotronic 0,02 € 1 0,02 €
Resistencia 10K Diotronic 0,02 € 5 0,10 €
Resistencia 270K Diotronic 0,02 € 1 0,02 €
Resistencia 30K Diotronic 0,02 € 1 0,02 €
Resistencia 470 Diotronic 0,02 € 3 0,06 €
Resistencia 4K7 Diotronic 0,02 € 2 0,04 €
Diodo LED 3mm Rojo Diotronic 0,35 € 2 0,70 €
Diodo LED 3mm Verde Diotronic 0,32 € 1 0,32 €
Calibración pH
Agua destilada Mercadona 0,83 € 1 0,83 €
Buffer pH 4 Growshop 4,57 € 1 4,57 €
Buffer pH 7 Growshop 4,57 € 1 4,57 €
TOTAL: 52,85 €
Medidor de pH Jose Manuel López Torres EUETIB
15/01/2015

7. Conclusiones
Tras la realización del primer prototipo según los valores desconocidos del electrodo de pH y
las diferentes pruebas realizadas sobre placa de prototipos previas al montaje expuesto en
este documento, se ha concluido que un hardware bien diseñado puede evitar dolores de
cabeza a programadores encargados de diseñar sistemas basados en la adquisición de datos.

Además, tras haber tenido pocas tomas de contacto previas a la programación sobre Arduino
16
se ha hecho latente el gran abanico de posibilidades que brinda esta plataforma gracias a la
información que incluye de forma predeterminada y la gran comunidad de soporte dedica al
desarrollo de aplicaciones cotidianas y profesionales con esta plataforma.

Por último, se debe tener en cuenta que se ha despreciado un gran factor que puede afectar a
las lecturas de pH mediante este método de medida como es la temperatura, aun así, las
lecturas proporcionadas por nuestro sistema y como se define en los objetivos de esta
actividad, sirven perfectamente para entender el comportamiento de los electrodos de pH y su
comportamiento.

8. Posibles Mejoras
Es aconsejable que para futuros montajes de un prototipo como el que se expone en este
documento se tengan en cuenta diversos puntos que pueden crear conflictos.

El uso de un condensador cerámico en paralelo a los pulsadores, así como el uso de pulsadores
de calidad pueden evitar posibles rebotes que pueden ser captados por el sistema, así como la
configuración de este para el uso de interrupciones a las pulsaciones y no realizar lecturas de
estos en un bucle como se ha realizado.

Para evitar las oscilaciones producidas por interferencias externas de la red es aconsejable el
montaje de un filtro para 50Hz y mayores frecuencias de entrada al convertidor analógico
digital del Arduino así como a las alimentaciones de los circuitos integrados encargados de la
adecuación de señal.

Para evitar posibles falsos contactos y una facilidad de montaje es aconsejable realizar el
montaje de un prototipo como el expuesto en un circuito impreso diseñado específicamente
para esta aplicación, reduciendo la posibilidad de error, capacidades parasitas y sensibilidad al
ruido.

Por último se aconseja la utilización de amplificadores operacionales rail to rail, dado que en
este montaje se ha utilizado un LM358N, el cual, alimentado a 5 V solo es capaz de administrar
una tensión máxima de salida de 3.56 V (valor experimental).
Medidor de pH Jose Manuel López Torres EUETIB
15/01/2015

9. Bibliografía y web grafía


Webgrafía

http://es.wikipedia.org/wiki/Amplificador_operacional Consultado: 12/01/2015

Fichas técnicas de componentes


17

http://www.intersil.com/content/dam/Intersil/documents/icl7/icl7660.pdf Consultado:
12/01/2015

http://www.ti.com/lit/ds/symlink/lm158-n.pdf Consultado: 12/01/2015

http://www.ti.com/lit/ds/snosbw6a/snosbw6a.pdf Consultado: 12/01/2015

Referencias para el diseño

http://www.sparkyswidgets.com/portfolio-item/ph-probe-interface/ Consultado: 12/01/2015

http://www.ph-meter.info/pH-meter-construction Consultado: 12/01/2015

http://www.reefcentral.com/forums/showthread.php?t=2160261 Consultado: 12/01/2015

Videos explicativos sobre electrodos de pH

https://www.youtube.com/watch?v=aIn4D2QXUy4 Consultado: 12/01/2015

https://www.youtube.com/watch?v=P1wRXTl2L3I Consultado: 12/01/2015