30 de julho de 2021

Do bit Ao Byte

Embarcados, Linux e programação

Como calibrar o PHmetro PH4502C

PHmetro PH4502C

O PHmetro tem diversas aplicações das quais apenas duas me ocorrem de imediato: aquário e cerveja. Claro, prefiro usar na produção de cerveja, jamais beberia água do aquário. Nesse artigo veremos como calibrar o PHmetro PH4502C, um espetáculo de dispositivo para usar com sua MCU preferida. Já de quebra, veremos o código para leitura e alguns detalhes interessantes sobre sua aplicação.

Características do PHmetro PH4502C

Os PHmetros têm a capacidade de medir entre 0 e 14, sendo 7 neutro, menor que 7 é ácido e acima de 7 alcalino. A água tratada que muitos de nós tomamos tende a 7, mas a alcalinidade faz bem para a saúde, dizem por aí. Refrigerantes são extremamente ácidos; cervejas padrão tem em média 4.5pH, mas podem ser bem mais ácidas, como é o caso das sauer. Mas não é de bebidas que vamos tratar aqui. Nem de piscina, mas para constar, sua alcalinidade deve ficar em torno de 7.2; sistemas hidropônicos, em torno de 6 e aquapônicos, em torno de 6.8. Mas a cerveja é uma arte, e antes de iniciar a mosturação já devemos ter um nível específico de acidez, que deve iniciar entre 6.2 e 6.4 antes da adição do malte e, ao fim da mosturação, devemos ter algo como 5.2. Esse controle inicial eu faço com ácido lático, pegando uma água próxima de 6.4pH. Ops, voltei à cerveja.

A grande questão é que os valores de pH são considerados à temperatura de 25 graus Celsius, de forma que um sensor de temperatura para fazer a compensação é tão fundamental quanto sua qualidade, dependendo da aplicação.

O ajuste precisa ser feito tanto no probe quanto na placa. A imagem é de uma das variações dela, mas o hardware é o mesmo.

PHmetro PH4502C pinout

A nomenclatura está um pouco diferente, sendo T2, T1, Po, GND, GND, VCC.

Na borda próxima ao conector de 3 pinos temos um sensor de temperatura LM35. Entre os potenciômetros se encontra um transistor WS TL431A 1535SD.

A alimentação pode vir diretamente do Arduino, assim como ambos os GND (claro, se vier o VCC, há de vir o GND). Se você já tem um desses do modelo acima, o pinout é:

  • TO – Temperature Output
  • DO – 3V3 Output
  • P0 – Saída analógica do PH
  • GND – do probe
  • GND – da placa
  • VCC – Alimentação 5V (pode ser do Arduino, ESP etc)
  • POT1 – Offset da leitura analógica
  • POT2 – Ajuste de limite do PH

Como a saída é analógica, a resolução fica por conta do conversor AD, sendo que em 0V teremos 0PH e com 5V teremos PH14. Em um Arduino temos 10 bits, que dá uma resolução de 1024 valores possíveis.

Nesse PHmetro da Saravati utilizamos os pinos VCC (5V), 1 GND e PO. Ainda não estamos considerando o sensor de temperatura LM35 que está na placa, mas ele é importante para, se necessário, fazer a compensação de temperatura, uma vez que o pH é considerado em uma temperatura ambiente de 25 graus Celsius.

Pra reforçar o wiring, peguei uma imagem no Google Images:

Configurar o offset do PHmetro PH4502C

O ponto médio desse PHmetro é 7pH para 0V, o que significa leitura negativa para valores ácidos. Isso deverá ser deslocado com a calibração, colocando o offset em 2.5V para 7PH. Isso também significa que, sendo a leitura feita em um Arduino, teremos apenas 512 valores para ácido e 512 valores para alcalino.

Para configurar o offset, fechamos o circuito do conector BNC entre o pino e a carcaça, então ajustamos o potenciômetro próximo ao conector BNC. Tenha em mente que fechar o curto representará o ponto neutro, 7pH. Assim, bastará deslocar até 2.5V de leitura analógica (512 para Arduino).

Podemos fazer esse ajuste de 3 modos: com um multímetro; com um sketch; com um osciloscópio.

Como calibrar o PHmetro PH4502C com um multímetro

Qualquer multímetro deve servir, mas nada como um multímetro que tenha trigger de pico. No caso, utilizando o multímetro Hikari HM-2080 da Eletrogate. Apenas leia o PO até que crave em 2.5V, ajustando o mesmo potenciômetro. Utilize o GND que está sobrando.

Como calibrar o PHmetro PH4502C com um sketch

Faça o upload do sketch a seguir (exemplo básico de leitura analógica, nem precisamos escrever código pra isso):

#include <Arduino.h>
int pHSense          = A0;
int samples          = 20;
int from_ad          = 0;
float adc_resolution = 1024.0;

void setup()
{
  Serial.begin(9600);
  delay(100);
  Serial.println("Saravati PH4502C");
}

float ph (float voltage) {
  return 7 + ((2.5 - voltage) / 0.18);
}

void loop () {
  int measurings=0;
  
  for (int i = 0; i < samples; i++)
  {
    from_ad = analogRead(pHSense);
    measurings += from_ad;
    delay(10);
    Serial.println(analogRead(from_ad));
  }
    float voltage = 5 / adc_resolution * measurings/samples;
    Serial.print("pH: ");
    Serial.println(ph(voltage));
    delay(3000);
}

Esse sketch tira 20 amostras e faz a média. Se houver muito ruído, aumente o número de amostras em sample. Outra opção é desconsiderar leituras de spike. Eu acabei utilizando 40 amostras e estabilizou melhor em 7pH. Para a cerveja, uma casa decimal é o suficiente, e a variação que estava acontecendo era de 0.02 (um pra cima ou um pra baixo de 7.00). Então, considero uma ótima leitura.

PHmetro PH4502C

Agora é hora de calibrar o probe.

Calibração do probe do pHmetro 4502C

Todos os PHmetros sofrem variação com o tempo, por isso o procedimento de calibração do probe é uma rotina. Fazendo brassagens uma vez por mês, sempre calibro o PHmetro, ou pelo menos faço a aferição. Mas essa é uma tarefa simples. Primeiro, esse PHmetro tem uma tampa de proteção com uma solução de cloreto de potássio. Isso facilita na calibração, pois não será necessário ligar e esperar uma estabilização após tirar o tampão. Essa tampa com a solução também protege o dispositivo.

Além disso, será necessário uma água destilada, desmineralizada ou deionizada. Serão necessários 2 sachês de pó de pirlim-pim-pim; mais popularmente conhecido como solução de calibração, com pH de 4.01 e pH de 6.86.  Compre 3 garrafinhas de água mineral, lave com água filtrada, depois lave bem com água destilada. Em cada uma das garrafas coloque 250ml de água destilada. Em uma delas, marque pH4.01; em outra, marque pH6.86 e na última marque neutro. Coloque o sachê em um copo descartável (também lavado com água destilada), misture na água da respectiva garrafa. Essa mistura pode voltar para a garrafinha depois, desde que não a contamine.

O procedimento é fácil: enxague bem o probe na água neutra (essa deverá ser jogada fora sempre), seque um pouco o probe, e então mergulhe na solução ácida. Deixe por 3 minutos, ainda que pareça ter estabilizado. Após, lave com água destilada, espere secar e repita o processo na solução alcalina.

Nessa calibração, podemos ajustar o valor de duas formas. A mais simples é um reajuste no potenciômetro. Pode ser que a medição não case com ambas as soluções, então você deve encontrar o meio termo. Mesmo que a medição seja favorável a ácido, como é o caso da cerveja, não tenda demais para esse lado, caso haja grande discrepância, pois mais adiante haverá uma curva que pode ser incorrigível. Também podemos adicionar um potenciômetro na saída do módulo e deixar intocado o potenciômetro da board. Acho que essa é a melhor solução, mas como disse, 2/100 não fará diferença para a maioria das aplicações.

A outra forma é fazer compensação via variável de programa, mas haja saco reprogramar toda a vez que houver variação.

Toda a vez que ligar, coloque na solução alcalina e espere estabilizar. Leva um tempo mesmo, é a contrapartida da qualidade.

Link para o PHmetro 4502C

Esse tesourinho está disponível na Saravati, que pode ser acessado através desse link.

Agora sim, um PHmetro de respeito!

Revisão: Ricardo Amaral de Andrade