Blog de Acuariofilia, Biología y Medioambiente (Antonio Castro)

Blog sobre Acuariofilia, Biología, Medioambiente, Mundo animal, Maltrato Animal, Medioambiente, Biodiversidad, Cambio Climátido…

(CAO-12) Módulo para el uso de Arduino PH Shield, de Dormant Labs

Introducción:

Este artículo pretende explicar cada una de las decisiones que se han tomado a la hora de programar este módulo para nuestro CAO (Controlador de Acuarios por Ordenador).

Módulo para el uso de Arduino PH Shield, de Dormant Labs

Módulo para el uso de Arduino PH Shield, de Dormant Labs

Los módulos son de descarga gratuita y licencia de uso Creative Commons-BY, para que podáis darles el uso que os apetezca.

Se optó por una marca de hardware bastante económica para el medidor. Ya habíamos hablado un poco de él. Se trata de  Arduino PH Shield, de Dormant Labs (En Adelante PhShield) para abreviar.

El tema del medidor del PH para mi proyecto CAO me ha dado bastantes quebraderos de cabeza.  Estuve bastante tiempo probando PhShied con con ayuda del código de prueba de  , (al cual envío un saludo y mi agradecimiento por la atención prestada). Es un software que podéis descargar en  Reza’s Blog: Arduino Dormant Labs PH Shield Tutorial.

Para las pruebas de PhShield he usado tres sondas, y he chequeado los resultados con un par de medidores, marca Milwaukee. Las calibraciones se hicieron con soluciones tampones a PH 4 y PH 7.

Mi valoración general del producto:

Ya hablé un poco de él comparándolo superficalmente con otros productos similares en un  artículo anterior a este, pero en aquel artículo no pude dedicarme demasiado a profundizar sobre las peculiaridades de PhShield que tiene virtudes innegables.

Me parece que destaca por su sencicillez de diseño, sencillez de uso, y por su economía. Dicho esto, vi que el tema de la compensación de la temperatura recurriendo a un sensor en la placa  del circuito no resultaba el sistema idóneo para su aplicación en acuariofilia. Una solución podría haber sido medir temperatura del acuario para compensarla. Se trata de algo perfectamente factible por software, pero después trabajar en esta línea la abandoné porque empecé a darme cuenta de que era algo innecesariamente rebuscado para mis necesidades.

Estudiando el software de demo de Reza Hussain:

Lo primero que deseo advertir es que la firma de Reza Hussain está serigrafiada en la PCB de la PhShield y que  su software de demo para este producto tiene un carácter oficial y de probada utilidad por ser el padre de la criatura. Mi código debe considerase una mera aportación extraoficial y me alegraré si resulta de utilidad para alguien.

Estudiando el código de Reza Hussain, he comprobado que este está diseñado para calibrar el PH a 25 ºC (cosa lógica ya que esta es la temperatura de referencia mencionada en las características de muchas sondas) para así compensar las diferencias de temperatura cuando se mida el PH a una temperatura diferente. Lo peculiar es que en la demos esto se hace midiendo con el sensor de temperatura de la placa. Es decir, tal y como está codificado el ejemplo de demostración, se asume que las soluciones a medir pueden estar a temperatura variable, pero siempre a temperatura ambiente porque al leer el PH es la que se mide para compensarla. Para la acuariofilia este podría no sería el enfoque idóneo porque el acuario estaría siempre dentro de unos rangos de temperatura bastante constantes regulados por un termostato y sin embargo la temperatura ambiente no tendría relación alguna con la temperatura de trabajo de la sonda.

En mis pruebas con este programa de demo, una vez calibrado el aparato, las medidas de los valores de PH en los tampones no eran todo lo perfectas que cabría esperar. Las posteriores medidas sobre la solucion tampón no daban ni 4.0 ni 7.0 sino valores ligeramente diferentes. Las causas pueden ser varias. Quizás ese código al manejar internamente voltajes y al asimilar el PH=7 a cero voltios, está siguiendo la lógica de funcionamiento de una sonda de PH ideal. No se puede entenderse este códico si no se conoce el funcionamiento de las sondas de PH. Estamos hablando de un enfoque muy válido pero por alguna razón no parece funcionar demasiado fino con algunas sondas imperfectas.

Mi planteamiento, como veremos más tarde, ha sido mucho más directo y sencillo y los resultados, (lo que realmente importa) fueron muy buenos.  La mejor de las sondas que yo usé tenía un año de antigüedad y la peor más de cuatro. El comportamiento de todas ellas se vio beneficiado. Especialmente el de mi peor sonda. Lecturas de soluciones tampón después de la calibración, proporcionaban valores exactos incluso con la sonda que conservo en un cajón desde hace cuatro años después de otros tres de servicio.

Así pues para poder explicar lo que hice y la razón de porqué lo hice empecemos comentando los principios básicos de la medición de PH.


Principios de medición de pH:

Las sondas de medición (electrodos) cuando están nuevas, entregan una respuesta lineal de 59.16 mv/pH (milivoltios por grado de PH) a 25 ºC. Para cero ºC darían 54.20 mV/pH y para 100ºC darían 74.04 (mV/pH).

Los pHs ácidos entregarán valores positivos de voltaje, los pHs alcalinos entregarán valores negativos y una solución neutra a pH 7, entregará 0 voltios. Con todo ello podríamos calcular el pH midiendo mV en la sonda. En esto se basan muchos programas incluido el de Reza Hussain, pero luego justificaré que la obtención de milivoltios es un paso intermedio innecesario y en el caso de sondas imperfectas podría no ser aconsejable.

Compensación de temperatura si o no:

El hardware de PhShield incluye un sensor de temperatura en la placa. Los medidores de pH suelen tener en cuenta la temperatura para poder compensar las diferencias de temperaturas. Algunos medidores usan sondas caras que incluyen un sensor de temperatura en la propia sonda.

Si midieramos el pH en el acuario y no compensamos temperatura, lo que tendríamos que hacer en lugar de calibrar a 25ºC sería calibrar usando soluciones tampón que se encuentren a la misma temperatura del acuario. En muchos casos esta podría no ser muy diferente de 25 ºC ya que la acuarifilia de peces ornamentales es mayoritariamente de climas tropicales. Calibrando el medidor de pH a con tampones la temperatura del acuario, no habrá nada que compensar más tarde.

Hay otro factor importante que minimiza los errores por no compensar la temperatura cuando se trata de acuariofilia. En la mayorías de los acuarios, no suelen medirse pHs extremos. Los valores de pH de la mayoría de los acuarios  son moderados, es decir, próximos a pH 7.

La medida de una solución a pH 7 en una sonda ideal nunca requiere ser compensada. Esto es así porque una sonda de pH introducida en una solución neutra entregará cero voltios con intependencia de la temperatura, (véase la tabla y más adelante el gráfico).

* pH 2 pH 3 pH 4 pH 5 pH 6 pH 7 pH 8 pH 9 pH 10 pH 11
5ºC -.30 -.24 -.18 -.12 -.06 0 .06 .12 .18  .24
15ºC -.15 -.12 -.09 -.06 -.03 0 .03 .06 .09 .12
25ºC 0 0 0 0 0 0 0 0 0 0
35ºC -.15 -.12 -.09 -.06 -.03 0 .03 .06 .09 .12
45ºC -.30 -.24 -.18 -.12 -.06 0 .06 .12 .18 .24
55ºC -.45 -.36 -.27 -.18 -.09 0 .09  .18 .27 .36

Para un aparato calibrado a 25ºC una medida sin compensar realizada a 15º o a 35 ºC nos daría un error de solo 0.03 grados de pH. Intentamos ilustrar esto el la siguiente gráfica.

Compensación de temperatura en la medida de pH

Compensación de temperatura en la medida de pH

Para medir pHs extremos a temperaturas muy diferentes de la temperatura de calibración sí sería imprescindible la calibración, pero esta circunstancia en acuariofilia no se va a dar casi nunca. Además en acuariofilia generalmente nos basta con una precisión de décimas de grado.

Una circunstancia que podría causar que una sonda genere algo de voltaje a pH 7, sería que estuviera afectada con algo de suciedad. Esto podría desplazar la gráfica de la recta en sentido vertical. Una sonda sucia con este comportamiento podría confundir a los programas que presuponen cero voltios a pH 7. Nosotros solo hacemos una suposición que también hacen el resto de medidores; suponemos que la respuesta es de tipo lineal, pero no supondremos nada más.

Explicación del funcionamiento de un medidor de pH:

Antes de explicar nuestro procedimiento, tenemos que explicar algunos detalles sobre el hardware. El circuito de los medidores de pH se basan en el uso de amplificadores operacionales de alta impedancia que usan una fuente de alimentación simétrica.

Concretamente los integrados usados en algunos de estos medidores de pH para Arduino son:

  • pHduino TL072
  • BNC Sensor Shield TL072
  • Arduino PH Shield de Dormant Labs TLC2272A

Hay muchos más integrados que podrían servir, pero lo importante de este componente es entender cual es su función. Lo que hace es amplificar el voltaje a su entrada de forma lineal. El circuito en nuestro caso hace algo más, traslada el voltaje a valores de potencial compatibles con Arduino, es decir, comprendidos entre 0v y 5v. De esta forma Arduino podrá leer el voltaje y entregará valores entre 0 y 1023.

Algunas placas de medidores de pH usan para el ajuste un procedimiento diferente que consiste en ajustar la ganancia del amplificador y los rangos de medida gracias al uso de resistencias ajustables (trimmers). En teoría esto nos permitiría tener una mayor precisión para medir dentro de un determinado rango de valores de pH, pero mis conclusiones son que esa ventaja teórica es innecesaria y complica el tratamiento software de la información. Me gusta mucho más la sencillez del hardware de PhShield que entre otras cosas me ha permitido usar el método interpolación lineal directa que describiré a continuación.

Contemplando el proceso de medición en su conjunto:

Podemos resumir el proceso de medición como la combinación de tres correspondencias lineales:

  • La correspondencia entre PH y milivoltios en la sonda es como ya vimos de tipo lineal.
  • La correspondencia entre milivoltios en la sonda y el voltaje entregado por el amplificador operacional es también lineal.
  • La correspondencia entre el voltaje de 0 a 5 voltios de la entrada analógica de Arduino y el valor de salida de Arduino entre 0 y 1023 también es lineal.

En resumidas cuentas las correspondencias lineales se encadenan de la siguiente forma:

pH –> mV –> InputAnalog(0v..+5v) –> Ardu(0..1023)

Todas estas relaciones son transitivas así que el valor del pH tendrá una correspondencia lineal con los valores entregados por Arduino dentro del rango 0..1023. Es decir:

pH –> Ardu(0..1023)

Me referiré a este principio, que necesito llamar de alguna forma, como Interpolación lineal directa y me temo que esta simplificación no se podría usar con equipos que usan calibración con trimmers ya que la correspondencia mV –> InputAnalog(0v..+5v) no sería fija sino ajustable.

Nosotros no asumiremos que la sonda entrega 0v a PH 7, lo cual solo es cierto para sondas en perfecto estado. Las sondas con problemas de diverso tipo, tales como presencia de suciedad, podrían no dar 0v a pH 7. Usando el  sistema adoptado para este módulo, podremos continuar midiendo con una precisión más que aceptable usando sondas ligeramente defectuosas.

Ello será así siempre que la sonda continúe entregando respuesta lineal, y esa circunstancia podría ser algo que tarde más tiempo en deteriorarse. Lo digo sin absoluta seguridad, pero al menos es lo que parece haber ocurrido con una de mis sondas que decidí no tirar a la basura y conservarla bien guardada en un cajón con la punta húmeda y protegida. Resulta que con mi software ha vuelto a funcionar con una gran precisión dentro del rago de valores que me interesa para el acuario que es el único que he verificado. Las sondas no son baratas y prolongar su vida útil me parece muy interesante.

En mi programa existe una función experimental que a partir de los datos de calibración, nos devuelve un dato que podría servir para diagnósticar el estado de la sonda en función de la proximidad de los valores para las soluciones tampón.

Precisión teórica y real de la lectura de pH:

La precisión de PhShield atendiendo al rango de valores de voltaje que proporcionará Arduino se se puede averiguar experimentalmente. En las pruebas que yo hice hice, PhShield es capaz de dar del orden de uno 67 valores diferentes por cada grado de pH). Esto nos daría una precisión teórica muy considerable de 0.015 grados de pH, pero en la práctica hay otros factores a considerar.

Debido a las interferencias eléctricas, la precisión real siempre es menor a esta precisión teórica. Las interferencias suponen una limitación muy importante. Para minimizarlas, el cable de las sondas de pH, son apantallados y el conector es de tipo BNC. El circuito debe ser instalado dentro de una caja metálica con chasis conectado a masa.

No solo las interferencias afectan a la medida. La distribución de los iones en la solución afecta a la medida, y para minimizar tal efecto, tendríamos que tomar una muestra de agua del acuario y someterla a un agitador magnético.

Para minimizar errores, nuestro programa realiza 600 medidas y luego las promedia. Cuando se trata de calibrar, multiplica por diez este número de lecturas.

Una sensibilidad mayor que la proporcionada por PhShield podría no ser útil ya que un exceso de amplificación de la señal amplificaría igualmente a las interferencias eléctricas recogidas por el equipo y  las variaciones de distribución iónica. PhShield es un aparatito sin excesivas pretensiones, pero da muy buena resolución y para nosotros dicha precisión es superior a la que se necesita habitualmente en acuariofilia.

Yo no tengo previsto usar más de un decimal en mi medidor de pH porque ello es más que suficiente en acuariofilia, pero en otro tipo de aplicaciones, por ejemplo en laboratorio usando agitadores magnéticos y controlando las interferencias lo mejor posible, podría tener más sentido mostrar las centésimas de grado de pH.

Dos botones en lugar de uno:

PhShiel viene con un único botón que por turnos se usa para calibrar a pH 7 y luego a pH 4. Yo utilizo un botón diferente para cada tampón. Suelo calibrar dos feces seguidas con el mismo tampón para verificar si ocurre alguna variación en la medida. (El botón de PhShield y el sensor térmico, son elementos opcionales por no tener relación con el resto del circuito electrónico).

 Uso de datos (int) en lugar de datos (float) en el programa:

Arduino no tiene un tratamiento completo de datos en coma flotante. Por ejemplo: los printf no  contemplan datos de coma flotante, y no existe ninguna posibilidad de usar double float que añadiría más precisión para cálculos complejos como es el caso de la interpolación de mínimos cuadrados. Yo en este módulo he procurado usar principalmente datos int y cuando he necesitado mayor precisión, he usado internamente en alguna función datos long. Lo que hago con esos datos enteros es que los considero décimas de grado pH. Es decir una función que devuelve 70 –> está devolviendo en realidad pH 7.o  Todo esto se entiende mejor leyendo el código, pero quería advertirlo aquí.

Datos de calibración en la EEPROM:

No tendría ninguna gracia tener que recalibrar el medidor de pH cada vez que Arduino pierda la alimentación. Por eso los datos de calibracion se guardan en la EEPROM de Arduino que dependiedon de los modelos tienen más o menos EEPROM.

  • Placas con Atmel ATmega168, como Arduino Lilypad, el antiguo Nano, Diecimila etc.; solo disponen de 512 bytes de EEPROM.
  • Placas con Atmel ATmega328, como Arduino Duemilanove, Uno, Uno SMD, Lilypad oro el Freetronics KitTen/Eleven; disponen de 1Kbytes de EEPROM.
  • Placas con Atmel ATmega1280 o 2560, los de la serie Arduino Mega; disponen de 4Kbytes de memoria EEPROM.

Las memorias EEPROM soportan un número de operaciones de escrituras a cero por cada bit que estuviera previamente a uno porque es una operación destructiva. En Arduino este número de escrituras son 100.000. Tenga en cuenta que por ejemplo según lo que acabamos de decir, escribir siempre el mismo dato en la misma posición de la memoria no la desgasta.

Cuando un bit se agota por superar el límite de escrituras destructivas, el resto de los bits puede seguir funcionando, y cuando un byte se ve afectado por ello, no afectará a otros bytes. Si una posición EEPROM deja de funcionar, bastará con usar una zona diferente de la memoria.

En nuestro programa, los datos de calibración (dos bytes que almacenan un valor de tipo entero) serán guardados en la EEPROM acompañados de cuatro bytes con un valor fijo peculiar y reconocible como firma (o número mágico). Se hace así para distinguir en la EEPROM la memoria que contiene basura de la que tiene información útil.

Un vídeo donde muestro su uso:

 Descarga y uso del módulo:

Descarga en tu directorio sketchbook el fichero:  PRU_PhSh_CAO.ZIP (17,3 kB)

Descomprímelo ahí mismo, y ya podrás usarlo desde el IDE de Arduino. Incluye el módulo y un programita de demo PRU_PhSh_CAO.ino. En total son tres ficheros que suman unas 500 lineas de código con amplios comentarios en castellano. Contiene muchas trazas para seguir el funcionamiento del programa.

Puedes ver todo esto en el vídeo que acompaña al artículo. Los ficheros vienen empaquetados y son tres:

  • CAO_PhShield.h  // fichero de cabecera del módulo que incluye declaraciones.
  • CAO_PhShield.cpp // Módulo C++. Incluye la clase para manejar el sensor como un objeto.
  • PRU_PhSh_CAO.ino // programa de prueba.

Para usar este software se supone que habréis comprado un  Arduino PH Shield, de Dormant Labs,  y que usareis un par de botones extra conectados a los pines declarados en el programa  PRU_PhSh_CAO.ino.

#define PinPH A2
#define PinButt_PH7 3
#define PinButt_PH4 2

Si tenéis cualquier dificultad consultarmela en los comentarios. Espero que os sea útil.

 

Anterior

30 meses para salvar el mundo

Siguiente

¿Es evitable una apocalipsis climática androgénica?

18 comentarios

  1. Chavi

    Las lecturas de pH solo sirven para acuarios? Hay alguna forma de adaptar el sistema para medir el pH de la tierra??

  2. Antonio Castro

    Te cuento momo lo haría yo: Riega una maceta de tierra echando agua destilada muy lentamente hasta que empiece a salir agua por el agujero de drenaje. Esperas cinco minutos y vuelves a echar agua despacio, esta vez recogiendo el agua que rebose por abajo en un pequeño recipiente donde puedas meter la sonda de PH y medir el PH del agua y ya está.

    • Chavi

      Mi idea es de automatizar el riego y cuidado de plantas y con ese método pierdo la autonomía del sistema. No se si existen también electrodos para medir el pH de la tierra y poder tomar lecturas constantes.

  3. Antonio Castro

    En ese caso, habría que enterrar una sonda, pero habría que hacer algo para evitar que la suciedad estropee la punta de la sonda y también para evitar que se seque.

    Para evitar que se seque se podría poner un detector de humedad y un punto de goteo permanente en el lugar de la sonda, y para evitar que le alcance la suciedad, habría que envolver la sonda en perlón bien apretadito como el que se usa en los filtros de los acuarios, pero ignoro si con este sistema las medidas serían fiables.

    De todas formas la toma de PH de la Tierra solo tiene sentido hacerla cada tres meses como mucho, porque no suele variar debido a la estabilidad que confieren las tierras apropiadas para los cultivos ricas en materia orgánica. Tienen un efectos tampón importante y yo creo que el PH variará en función de la perdida de nutrientes de la tierra. la variación del pH modifica el grado de solubilidad de los minerales y en especial al hierro que el vital para las plantas. Todo esto te lo digo se memoria de cosas que recuerdo de la carrera de biológicas que estudié hace demasiados años. De cultivos de plantas no tengo experiencia, pero me sorprende un poco que quieras medir el PH continuamente.

    Desconozco las necesidades de auomatización ligadas al PH. Supongo que es un tema ligado a una investigación o a una curiosidad personal, pero te cuento todo esto porque yo creo que el PH en los cultivos es muy estable y está ligado al tipo de tierra que se use. Por ejemplo, para acidificar la tierra se usa la turba o la tierra de brezo. Creo que el mantillo de origen animal es más bien neutro aunque no estoy seguro, y la adición de tierra caliza la alcaliniza.

    • Chavi

      Muchas gracias, es un proyecto personal para automatizar el cuidado de las plantas, mis conocimientos de jardinería se han limitado a medir el ph con las tiras que venden y poco más. Lo que estuve mirando lo que dijiste y me pregunto si controlando el ph del agua de riego haría el mismo efecto que medir el ph de la tierra y de esta forma mantener el electrodo húmedo. Gracias por tu ayuda

  4. Antonio Castro

    El Ph del agua de riego generalmente tiene poco que ver con el agua que ha atravesado una tierra de cultivo. Modificar el Ph del agua de riego no es la forma adecuada de controlar el Ph de un cultivo en tierra. Si fuera un cultivo hidropónico, la cosa cambia totalmente.

  5. Hola Antonio, quería preguntarle una cosa sobre este shield, de los chips que tiene, supongo que uno es el sensor de temperatura, el otro un amplificador y el tercero que es (me ha parecido ver la M de microchip). Me parece un tutorial muy conciso y que me ayudara en el proyecto que tengo en mente ya que tengo estropeado el pH computer de aqua medic (no se calibra bien ni con sonda nueva ni líquidos nuevos). Y con un poco mas de codigo lo intentare mostrar en un LCD, indicarle el maximo y minimo de histeresis y fijar un valor de pH… muchas cosas para un principiante… xD. Por cierto la pregunta que le he hecho es mas que nada por saber si en caso de estropearse el shield se pueden sustituir los IC (si uno es programado…. mal vamos xD) como es el caso de los Atlas Scientific. Gracias por todo, un saludo Jose Ramon.

    • Antonio Castro

      Es curioso, también tuve un aquamedic y se me estropeó. Un circuito electrónico bien diseñado no tiene por qué estropearse jamás. Lo difícil no sería encontrar el chip, sino qiuzás, desoldarlo de la placa. La circuitería que usa es muy sencilla u su precio no tiene nada que ver con el de un producto como Aquamedic. Una de las cosas que me decidió a realizar este proyecto es que la acuariofilia no es un área de gran consumo y en este tipo de aparatos la relación calidad precio no es buena. Todo resulta carísimo y para colmo… Te venden un cacharro caro que falla .

  6. Bruno

    Hola Antonio, antes que nada quería agradecerle los datos y las claras explicaciones proporcionadas en sus posts.
    Le comento que como proyecto personal quiero realizar un sistema de regulacion de ph para piscinas y leyendo un poco al respecto me surgieron unas dudas que usted puede ayudar a evacuar:
    La calibración del sistema se debe realizar cada vez que se efectúe una medicion? o se realiza por unica vez al principio?
    Por otro lado, yo había ideado un sistema donde la sonda esté embebida permanentemente en el agua a medir, es esto posible? cuales serían las implicancias a tener en cuenta para dicho concepto?

  7. Antonio Castro

    No todas las sondas conservaran su precisión original de medida durante el mismo tiempo sumergidas en el agua, pero incluso las sondas baratas pueden aguantar un par de años. La forma en que las sondas se conservan mejor es sumergidas en una solución especialmente diseñada para conservarlas. Si la piscina no se usa en invierno sería una buena cosa guardar la sonda sumergida en esa solución.
    La calibración se hace al principio y conviene recalibrar cada cierto tiempo en función de que sospechemos que la sonda esté empezando a perder precisión. A principio de temporada sería muy conveniente hacer siempre una recalibración. Las sondas pueden averiarse por envejecimiento o por uso inadecuado, son delicadas.

    • Bruno

      Muchas gracias! me ha sido de mucha ayuda, en cuanto tenga un prototipo funcional con gusto compartiré los resultados con usted y la comunidad de su blog.
      Saludos

      • Antonio Castro

        Bruno, eso sería genial. Si te surge cualquier otra duda ya sabes que aquí puedes preguntar lo que quieras..

  8. Alan Medina

    Hola Antonio, Me encuentro en la siguiente situación hace poco compre un sensor de pH para arduino, el cual lo venden en esta pagina:

    http://www.dfrobot.com/index.php?route=product/product&product_id=1025

    leí la información que pone el fabricante y menciona que para calibrarlo con un pH de 7, es necesario ponerlo en una solución con ese pH, y modificar la medición obtenida en el offset del programa, y me dice que para un pH de 4.0 y 9.18 ajuste la ganancia del modulo, de acuerdo a su experiencia, es necesario hacer este ajuste en la ganancia? pues mi idea es que se pudiera calibrar desde el software, y no desde el hardware, espero me pudiera ayudar.

    saludos y gracias

    • Antonio Castro

      Son aparatos que se basan en el principio de que a pH7 la sonda entregará 0 voltios y si marca algo distinto se puede compensar aritmeticamente, pero nada de eso es necesario porque la respuesta ha de ser lineal. El algoritmo que usa mi software solo necesita tomar dos referencias de medida a dos valores de pH conocidos para calibrar el aparato. No uso compensación de temperatura porque para acuariofilia no se producen desvíos significativos por ese motivo. Basta calibrar a una temperatura similar (temperatura ambiente) a la que luego se va a usar.

  9. LUIS

    Hola Antonio,

    Me he encontrado tu blog por casualidad buscando información sobre la regulación automática del pH en una piscina. Mi idea es la de crear mi propio sistema basado en la utilización de un Arduino y una sonda de pH. Estuve viendo sistemas comerciales, pero los precios son prohibitivos para lo que ofrecen, así es que he decido montarme yo algo por mi cuenta con el objetivo, sobre todo, de sacarle el máximo provecho a las sondas que son caras y tienen un tiempo de vida útil limitado. En este sentido tu blog me ha parecido genial y muy, muy interesante. Sin embargo, he intentado descargarme el código para echarle un vistazo pero me dice que la página ya no está disponible…Me puedes indicar cómo descargármelo? Pienso que aunque la utilización es diferente sería fácilmente extrapolable al mundo de las piscinas con quizá alguna matización. Gracias de antemano por la info!

    • Antonio Castro

      Has probado el enlace desde DropBox oara descargar el fichero zip?
      https://www.dropbox.com/s/1t3xn9r0ty6vsfy/LinealSensorLCD.zip?dl=0

      Si lo pruebas con una alimentación a pilas debería funcionar bien, pero con una alimentación enchufada a la toma eléctrica puede dar problemas porque la sonda es muy sensible, está sumergida y podría producirse derivaciones de la seña que se intenta medir.
      Por ello, la alimentación del circuito debe hacerse con un alimentador que tenga un buen aislamiento galvánico.
      Me han comentado que los alementadores para teléfonos móviles tienen buen aislamiento.
      Siempre deberías probarlo a pilas primero para estar seguro de que te funciona perfecto.

  10. Gonzalo

    Hola Antonio, al momento de compilar el codigo que descargue del dropbox que pasaste, me tira el siguiente error:

    C:\Users\vin_g\Desktop\Senso pH\LinealSensorLCD\LinealSensorLCD.ino: In function ‘void Refresh()’:
    C:\Users\vin_g\Desktop\Senso pH\LinealSensorLCD\LinealSensorLCD.ino:139:38: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
    SerFmt.Fmt(0,»%d:», Ph.GetIndex());
    ^
    C:\Users\vin_g\Desktop\Senso pH\LinealSensorLCD\LinealSensorLCD.ino: In function ‘void setup()’:
    C:\Users\vin_g\Desktop\Senso pH\LinealSensorLCD\LinealSensorLCD.ino:261:119: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
    Ph.Ini(F(«PhShield»), F(«pH4»), F(«pH7») , ‘c’, 0, 1000, «ANR», PinPhShield, 300, 400, 700, 1000, Diagnosticos);
    ^
    C:\Users\vin_g\Desktop\Senso pH\LinealSensorLCD\LinealSensorLCD.ino:264:119: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
    Ph.Ini(F(«PhI2C»), F(«pH4»), F(«pH7») , ‘c’, 1, 1000, «IDL», PHADDRESS, 300, 400, 700, 1000, Diagnosticos);
    ^
    sketch\PhMeter_SerialFmt.cpp:42:13: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
    char *OvERR=»@ OvErr en FmtCad»;
    ^~~~~~~~~~~~~~~~~~~
    sketch\PhMeter_Botonera2Puls.cpp: In member function ‘void PhMeter_Botonera2Puls::_Puls(int, int)’:
    sketch\PhMeter_Botonera2Puls.cpp:100:46: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
    case B_NULL: _StrPuls=»NUL»; break;
    ^~~~~
    sketch\PhMeter_Botonera2Puls.cpp:101:46: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
    case B_RIGHT: _StrPuls=»RIG»; break;
    ^~~~~
    sketch\PhMeter_Botonera2Puls.cpp:102:46: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
    case B_LEFT_RIGHT: _StrPuls=»L+R»; break;
    ^~~~~
    sketch\PhMeter_Botonera2Puls.cpp:103:46: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
    case B_LEFT: _StrPuls=»LEF»; break;

    No se a que se debe, te mando un gran saludo !

    • Antonio Castro

      El software es antiguo, ahora los compiladores son más estrictos y no permiten ciertas cosas. El Hardware en cuestión creo que dejo de fabricarse. Este software, no es apto para ser alimentado desde la red eléctrica. No estoy haciendo mantenimiento de este software. Hace años que ya no uso ningún lector de PH casero. Lo siento.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Funciona con WordPress & Tema de Anders Norén