A medição do potencial hidrogeniônico (pH) faz-se importante em diversos processos, principalmente os que envolvem ácidos e/ou bases. Existem diversas formas para realizar essa medição, sendo uma das ...
By Super User	 25 Fevereiro 2021	 Acessos: 505
Embora a saída desse sensor seja em volts, o valor é tão baixo que não é possível detectá-lo nem mesmo com multímetros convencionais, impossibilitando seu uso direto com o Arduino. Porém, existem circuitos destinados especialmente para realizar a conversão dessa leitura, sendo um deles o "pH Circuit" desenvolvido pela Atlas Scientific.
Conector BNC fêmea (disponível na Atlas Scientific)
Soluções tampão (pH 4.0, 7.0 e 10.0
Figura 1 - Circuito de ligação do pH Circuit, conector BNC e Arduino.
Para se realizar a leitura de pH, basta montar o circuito apresentado na figura 1 e conectar o BNC macho do eletrodo no BNC fêmea do circuito. Deve-se utilizar o código disponibilizado pela Atlas Scientific. Esse código permite o envio de comandos através do monitor Serial. O comando para realizar leituras contínuas de pH é a letra "C" (maiúscula ou minúscula), seguido de "<CR>".
char ph_data[20];
char computerdata[20];
byte received_from_computer=0;
byte received_from_sensor=0;
byte arduino_only=0;
byte string_received=0;
if(arduino_only!=1){
received_from_computer=Serial.readBytesUntil(13,computerdata,20);
computerdata[received_from_computer]=0;
myserial.print(computerdata);
myserial.print('\r
received_from_sensor=myserial.readBytesUntil(13,ph_data,20);
ph_data[received_from_sensor]=0;
string_received=1;
Serial.println(ph_data);
if(arduino_only==1){Arduino_Control();}
void Arduino_Control(){
if(startup==0){
myserial.print("e\r
myserial.print("R\r
if(string_received==1){
ph=atof(ph_data);
if(ph>=7.5){Serial.println("high\r");}
if(ph<7.5){Serial.println("low\r");}
string_received=0;}
void s_cal(){
myserial.print("s\r
void f_cal(){
myserial.print("f\r
void t_cal(){
myserial.print("t\r
void phFactoryDefault(){
myserial.print("X\r
void read_info(){
myserial.print("I\r
void phSetLEDs(byte enabled)
myserial.print("L1\r  else
myserial.print("L0\r
Já que o valor do pH de uma solução depende da sua agitação molecular, para realizar medições precisas dessa variável faz-se necessário compensar a temperatura. Para isso utilizou-se do sensor de temperatura DS18B20, mas qualquer forma de medição pode ser utilizada.
Figura 2 - Circuito para a leitura de temperatura com o DS18B20.
Conhecendo o valor de temperatura (em graus Celsius), esse pode ser apenas digitado no monitor Serial e enviado como um comando (seguido de "<CR>"). O código da Atlas Scientific irá então fazer a compensação. No caso do experimento conduzido, essa temperatura era de 21 °C.
Figura 2 - Temperatura medida e comando enviado.
Feito isso, já estaremos obtendo leituras de pH. Mas será que elas são acuradas?
Para certificar-se disso podem-se utilizar soluções tampão. Essas soluções possuem o pH fixo em determinado valor e podem ser utilizadas para a calibração do sensor. São necessários no mínimo três pontos de medição. Usualmente utilizam-se tampões para os pH's 4.0, 7.0 e 10.0.
No experimento conduzido, percebeu-se que — sob a temperatura ajustada de 21 °C — a leitura para a solução tampão de pH 4.0 era de 5.59. Para corrigir esse erro, utilizou-se do comando "F<CR>" que permite informar ao pH Circuit que a solução possui pH 4.0, e que o sensor deve ser ajustado para esse valor.
De forma similar, realizaram-se os ajustes para pH 7.0 e 10.0, sempre submergindo o eletrodo em água antes de mudá-lo de solução, de forma a minimizar a mistura entre os tampões. Os comandos de ajuste para esses pontos são, respectivamente, "S<CR>" e "T<CR>".