Neste tutorial você vai aprender a ler o valor de pH usando um sensor analógico, processar essa leitura com o Arduino e exibir o resultado em um display OLED 128×64 via I²C, além de acompanhar tudo pelo Serial Monitor para diagnóstico.
Esse tipo de projeto é muito utilizado em: Aquários e piscicultura; Hidroponia; Monitoramento de água; Projetos educacionais de intrumentação.
Componentes Utilizados:
- Arduino (Uno, Nano ou compatível)
- Sensor de pH analógico (saída 0–5V)
- Display OLED 128×64 I²C (controlador SSD1306)
- Jumpers
- Protoboard (opcional)
| Arduino (Uno, Nano ou compatível) | ![]() |
| Sensor de pH analógico (saída 0–5V) | ![]() |
| Display OLED 128×64 I²C (controlador SSD1306) | ![]() |
| Jumpers | ![]() |
| Protoboard (opcional) | ![]() |
Ligações e Pinagem:
- Sensor de pH → Arduino
- Sensor de pH Arduino
- VCC 5V
- GND GND
- AO (Analógico) A0
O sensor de pH fornece uma tensão proporcional ao pH, normalmente entre 0 e 5V.
Display OLED I²C → Arduino
| OLED | Arduino |
| VCC | 5V ou 3.3V |
| GND | GND |
| SDA | A4 (Uno/Nano) |
| SCL | A4 (Uno/Nano) |
O endereço I²C mais comum desse display 0x3C, usado no código.

Bibliotecas Necessárias
Antes de compilar o código, instale as bibliotecas abaixo pelo Gerenciador de Bibliotecas da IDE Arduino:
- Adafruit GFX Library
- Adafruit SSD1306
Caminho:
IDE Arduino → Sketch → Incluir Biblioteca → Gerenciar Bibliotecas
Como o Código Funciona
- O Arduino lê o valor analógico do sensor de pH no pino A0
- Converte o valor ADC (0–1023) em tensão (0–5V)
- Aplica uma fórmula padrão de conversão
- Exibe:
○ pH no display OLED
○ Valores de diagnóstico no Serial Monitor
Existe também uma variável chamada offsetPH, usada para calibração fina, caso necessário.
Fórmula Utilizada
pH = 3.5 * tensão + offset
Essa é uma fórmula genérica, comum nesses módulos. Para medições precisas, o ideal é calibrar com soluções padrão de pH 4.0 e 7.0.
Código Completo do Projeto
Copie e cole exatamente como está abaixo:
include <Wire.h>
include <Adafruit_GFX.h>
include <Adafruit_SSD1306.h>
define SCREEN_WIDTH 128
define SCREEN_HEIGHT 64
define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
define PH_PIN A0
// Ajuste fino (calibração depois)
float offsetPH = 0.00;
void setup() {
Serial.begin(9600);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("Erro no OLED"));
while (true);
}
display.clearDisplay();
display.setTextColor(SSD1306_WHITE);
Serial.println("Leitura de pH iniciada…");
}
void loop() {
int adcValue = analogRead(PH_PIN);
float voltage = adcValue * (5.0 / 1023.0);
// Fórmula padrão desses módulos
float pH = 3.5 * voltage + offsetPH;
// Serial Monitor (diagnóstico)
Serial.print("ADC: ");
Serial.print(adcValue);
Serial.print(" | Tensao: ");
Serial.print(voltage, 2);
Serial.print(" V | pH: ");
Serial.println(pH, 2);
// OLED
display.clearDisplay();
display.setTextSize(1);
display.setCursor(0, 0);
display.println("Sensor de pH");
display.setTextSize(2);
display.setCursor(0, 20);
display.print("pH: ");
display.println(pH, 2);
/*
display.setTextSize(1);
display.setCursor(0, 50);
display.print("ADC: ");
display.println(adcValue);
*/
display.display();
delay(1000);
}O Que Você Vai Ver
No Display OLED:
Sensor de pH
pH: 8.75
No Serial Monitor:
ADC: 512 | Tensao: 2.50 V | pH: 8.75
Próximos Passos (Evoluções do Projeto)
- Calibração real com soluções padrão
- Média móvel para reduzir ruído
- Alertas visuais (LED) para pH fora da faixa
- Registro de dados (datalogger)
- Envio para IoT (ESP8266 / ESP32)
Saiba mais sobre a parceria Saravati e Sara Educação
Este “Guia de Montagem” é uma colaboração especial entre a Saravati e a Sara Educação, criado pelo Professor Felipe Rosa. Nosso objetivo é enriquecer a comunidade de entusiastas da eletrônica, IoT e automação com recursos educacionais de alta qualidade. Através dessa parceria, buscamos inspirar e capacitar criadores em seus projetos, disponibilizando esses guias em nosso blog e nas redes sociais.






