Medidor de pH Preciso com Arduino e Sensor Atlas Scientific – Guia Completo
Componentes e Materiais
| Componente | Qtd |
|---|---|
| Arduino UNO | 1 |
| Sensor Atlas Scientific Gravity™ pH Analógico | 1 |
| Sonda pH Atlas Scientific (grau consumidor) | 1 |
| Display LCD 20×4 | 1 |
| Caixa 158×90×60 mm | 1 |
| Mini protoboard | 1 |
| Resistor 220 Ω | 1 |
| Resistor 1 kΩ | 1 |
| Espaçadores/parafusos 11 mm (incluídos no sensor) | 4 |
| Jumpers | 1 |
| Chapa acrílica (plexiglass) | 1 |
Ferramentas Necessárias
- Furadeira, brocas, serra, lixas, chaves, prensa, pistola de cola, ferro de solda, paquímetro, régua
Aplicativos
- Arduino IDE
Sobre o Projeto
Construiremos um medidor de pH de bancada usando o circuito analógico Gravity e sonda da Atlas Scientific com Arduino Uno. Leituras no LCD.
Nota: Desenvolvido no Windows (não testado no Mac). Caixa não é à prova d'água.
Passo 1: Preparar Caixa
Segurança
Use EPI: óculos, luvas, respirador.
Recorte para LCD
- Centralize retângulo 98×40 mm na tampa.
- Fure 3,2 mm (piloto) dentro do retângulo.
- Use broca de drywall 3,2 mm na furadeira para cortar (trabalhe por dentro).
- Lime para ajustar.
Recortes para BNC e Portas Arduino
Na lateral da base: marque furo circular (BNC) e dois retângulos (USB, barrel jack). Corte com brocas e lima.
Placa de Base
Acrílico 3,2 mm cortado a 135×62,5 mm. Fure 4 furos 2,38 mm, alinhe e contra-afunde (3 mm profundidade, 4,4 mm diâmetro). Fixe 4 espaçadores 11 mm (2 para Arduino, 2 para sensor pH).
Passo 2: Instalar Eletrônica
- Fixe placa de base na caixa (parafusos ou cola quente).
- Monte sensor pH nos espaçadores.
- Monte Arduino nos espaçadores.
- Adicione mini protoboard.
- Solde pinos no LCD, encaixe na tampa, fixe com cola quente.
Passo 3: Fiação
Siga o esquemático. Use protoboard para resistores 1kΩ e 220Ω (contraste do LCD) e distribuição de 5V/GND do Arduino.
Datasheets: sensor Gravity pH, sonda pH.
Passo 4: Finalizar Montagem
- Una tampa e base com parafusos.
- Conecte sonda ao conector BNC.
Passo 5: Carregar Código
- Conecte Arduino, abra IDE. Tools → Board → Arduino/Genuino Uno. Tools → Port → selecione porta.
- Biblioteca LCD: Sketch → Include Library → Manage Libraries → busque "liquidcrystal" → instale "LiquidCrystal Built-in by Arduino, Adafruit".
- Biblioteca Atlas Gravity: baixe ZIP do link fornecido → Sketch → Include Library → Add .ZIP Library.
- Copie código do link para a IDE.
- Compile e faça upload.
- Leituras no LCD e Serial Monitor (Ctrl+Shift+M, 9600 baud, "Carriage return").
Passo 6: Calibrar Sensor pH
Importante: Se usar fonte externa, conecte antes da calibração para referência correta.
Calibração de 1, 2 ou 3 pontos (soluções tampão pH 4, 7, 10). Dados salvos na EEPROM.
Comandos via Serial Monitor
- Ponto baixo:
cal,4 - Ponto médio:
cal,7 - Ponto alto:
cal,10 - Limpar calibração:
cal,clear
Procedimento
- Retire frasco de armazenamento, enxágue sonda.
- Coloque sonda em solução pH 4 (cubra área sensível), mexa para remover bolhas.
- Aguarde estabilização no Serial Monitor.
- Digite
cal,4→ "LOW CALIBRATED". - Repita para pH 7 e 10 (enxágue entre cada).
Compensação de Temperatura
Sensor tem precisão ±0,2% entre 7–46 °C. Fora disso, requer modificação. Sonda suporta 1–60 °C.
Código
/* Após upload: Serial Monitor 9600 baud + "Carriage return"
Leituras em tempo real + calibração 1/2/3 pontos.
Comandos: "cal,4" "cal,7" "cal,10" "cal,clear" */
#include "ph_grav.h" // Biblioteca Atlas Gravity pH
#include "LiquidCrystal.h" // Biblioteca LCD
String inputstring = "";
boolean input_string_complete = false;
char inputstring_array[10];
Gravity_pH pH = A0; // Pino A0 = saída do sensor pH
LiquidCrystal pH_lcd(2, 3, 4, 5, 6, 7); // RS, E, D4-D7
void setup() {
Serial.begin(9600);
pH_lcd.begin(20, 4);
pH_lcd.setCursor(0,0); pH_lcd.print("--------------------");
pH_lcd.setCursor(0,3); pH_lcd.print("--------------------");
pH_lcd.setCursor(5,1); pH_lcd.print("pH Reading");
if (pH.begin()) Serial.println("Loaded EEPROM");
Serial.println(F("Use \"CAL,4\", \"CAL,7\", \"CAL,10\" para calibrar"));
Serial.println(F("Use \"CAL,CLEAR\" para limpar calibração"));
}
void serialEvent() {
inputstring = Serial.readStringUntil(13);
input_string_complete = true;
}
void loop() {
if (input_string_complete) {
inputstring.toCharArray(inputstring_array, 30);
parse_cmd(inputstring_array);
input_string_complete = false;
inputstring = "";
}
Serial.println(pH.read_ph());
pH_lcd.setCursor(8, 2);
pH_lcd.print(pH.read_ph());
delay(1000);
}
void parse_cmd(char* string) {
strupr(string);
if (strcmp(string, "CAL,4") == 0) {
pH.cal_low(); Serial.println("LOW CALIBRATED");
} else if (strcmp(string, "CAL,7") == 0) {
pH.cal_mid(); Serial.println("MID CALIBRATED");
} else if (strcmp(string, "CAL,10") == 0) {
pH.cal_high(); Serial.println("HIGH CALIBRATED");
} else if (strcmp(string, "CAL,CLEAR") == 0) {
pH.cal_clear(); Serial.println("CALIBRATION CLEARED");
}
}
Esquemático

Processo de manufatura
- Construa um Spybot Controlado por Bluetooth com Arduino
- FlickMote: Controle Remoto IR por Gestos para Casa Inteligente
- DIY Arduino TV B-Gone: Controle Remoto Universal para Todas as TVs
- Construa um Relógio Mestre LED Personalizado com Alarme – Visível a 12 Metros
- Find Me: Localizador Inteligente de Objetos com Arduino e Bluetooth
- Soluções de Energia Otimizadas para Projetos Arduino
- Jogo da Velha com Arduino, Matriz LED MAX7219 e Caixa de Papelão
- Construa um Robô Quadrúpede Inteligente com Arduino: Guia Passo a Passo
- Volante Joystick Arduino Personalizado para Jogos
- Construa uma Máquina CNC Totalmente Funcional com Arduino Nano R3