Construye un Medidor de pH Preciso con Arduino y Sensor Atlas Scientific – Piezas y Guía
Componentes y suministros
| Arduino UNO | 1 |
| Sensor Atlas Scientific Gravity™ Analog pH | 1 |
| Sonda pH Atlas Scientific Consumer Grade | 1 |
| Módulo LCD 20x4 | 1 |
| Caja 158x90x60 mm | 1 |
| Mini protoboard | 1 |
| Resistencia 220 Ω | 1 |
| Resistencia 1 kΩ | 1 |
| Separadores y tornillos 11 mm (incluidos con sensor pH) | 4 |
| Cables jumper | 1 |
| Lámina acrílica (plexiglás) | 1 |
Herramientas necesarias
- Taladro, brocas, cortadora de yeso, limas, destornilladores, tornillo de banco, sierra de cinta, pistola de pegamento, soldador y estaño, calibre digital, regla
Aplicaciones y servicios online
- Arduino IDE
Acerca del proyecto
Construiremos un medidor de pH de sobremesa usando el circuito analógico Gravity pH y sonda de Atlas Scientific con Arduino Uno. Las lecturas se mostrarán en una pantalla LCD.
Nota: Desarrollado en Windows, no probado en Mac. La caja no es estanca.
Paso 1: Preparar la carcasa
Seguridad: Usa gafas, guantes y mascarilla al manejar herramientas.
La carcasa es de plástico ABS. Hay que modificarla.
Recorte para la LCD
- La LCD va en la tapa. Centra un rectángulo de 98x40 mm.
- Sujeta en el tornillo de banco y taladra un piloto de 3.2 mm (1/8") dentro del rectángulo.
- Usa esa broca como inicio para cortar con broca para yeso de 3.2 mm. Trabaja por dentro del rectángulo.
- Lima el exceso y ajusta el rectángulo al tamaño requerido.

Recortes para conector BNC y puertos Arduino
Están en el lateral de la base.
- Marca centro del círculo y contornos de dos rectángulos según cotas.
- Sujeta en el tornillo y corta. El círculo con brocas; los rectángulos igual que el de la LCD.

Placa base para montar componentes
Usa lámina acrílica de 3.2 mm.
- Corta a 135x62.5 mm con sierra de cinta.
- Marca y taladra 4 agujeros de 2.38 mm (3/32"). Avellana un lado a 3 mm profundidad y 4.4 mm (11/64") diámetro para que las cabezas de tornillo queden a ras.
- Atornilla los separadores de 11 mm (vienen con el sensor pH). Usa dos para Arduino.

Paso 2: Instalar electrónica en la carcasa
- Inserta la placa base en la base de la carcasa. Fija con tornillos o pegamento caliente.
- Monta el sensor pH en la placa base. Atornilla a los separadores.
- Monta Arduino Uno en la placa base. Atornilla a sus separadores.
- Pega la mini protoboard en la placa base.
- Solda los pines de cabecera a la LCD (incluidos). Inserta la LCD en la tapa y fija con pegamento caliente.





Paso 3: Cablear la electrónica

Cablea según el esquema. Usa la mini protoboard para las resistencias de 1kΩ y 220Ω y para distribuir 5V y GND de Arduino. Las dos resistencias ajustan el contraste de la pantalla.

Datasheets: Sensor Gravity pH, sonda pH.
Paso 4: Finalizar montaje
- Une tapa y base con los tornillos suministrados.
- Conecta la sonda al conector BNC.

Paso 5: Subir código a Arduino Uno
El código usa librerías y cabeceras personalizadas. Hay que añadirlas al IDE.
- Conecta Arduino, abre IDE. Herramientas → Placa → Arduino/Genuino Uno. Herramientas → Puerto → selecciona el puerto.
- Añade librería LiquidCrystal: Sketch → Include Library → Manage Libraries → busca "liquidcrystal" → instala "LiquidCrystal Built-in by Arduino, Adafruit".
- Añade librería Atlas Gravity: descarga ZIP desde el enlace, Sketch → Include Library → Add .ZIP Library → selecciona "Atlas_gravity.zip".
- Copia el código del medidor pH (enlace) al IDE.
- Compila y sube.
- Las lecturas aparecerán en la LCD. También en Monitor Serie (Ctrl+Shift+M), baudios 9600, "Carriage return".
Paso 6: Calibrar sensor pH
Nota: Si usarás alimentación externa, conéctala antes de calibrar para que los niveles de referencia sean correctos.
El medidor permite calibración de 1, 2 o 3 puntos. Se necesitan soluciones tampón estándar (pH 4, 7, 10). El Monitor Serie se usa para calibrar: observa la estabilización y envía comandos. Los datos de calibración se guardan en EEPROM.
Comandos de calibración
- Punto bajo:
cal, 4 - Punto medio:
cal, 7 - Punto alto:
cal, 10 - Borrar calibración:
cal, clear
Pasos
- Quita el frasco de almacenamiento y enjuaga la sonda.
- Vierte solución pH 4 en un vaso (que cubra la zona sensible).
- Sumérgela, agita para eliminar burbujas. Observa lecturas en Monitor Serie hasta que se estabilicen.
- Envía comando
cal, 4. Calibración pH 4 completada.
Repite para pH 7 y pH 10. Enjuaga la sonda entre soluciones.
¿Compensación de temperatura?
El sensor tiene precisión ±0.2%. Funciona en rango 7-46°C. Fuera de ese rango, hay que añadir compensación. La sonda soporta 1-60°C.
Código
/* Una vez subido, abre Monitor Serie, 9600 baudios, "Carriage return"
Permite ver lecturas pH en tiempo real y calibrar.
Comandos: "cal,4" "cal,7" "cal,10" "cal,clear"
*/
#include "ph_grav.h"
#include "LiquidCrystal.h"
String inputstring = "";
boolean input_string_complete = false;
char inputstring_array[10];
Gravity_pH pH = A0; // Pin A0 para salida 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("Usa \"CAL,4\", \"CAL,7\", \"CAL,10\" para calibrar"));
Serial.println(F("Usa \"CAL,CLEAR\" para borrar calibración"));
}
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áticos

Proceso de manufactura
- Construye un Spybot controlado por Bluetooth con Arduino
- FlickMote: Mando IR por gestos para Smart Home
- TV‑B‑Gone DIY con Arduino: Mando universal para apagar cualquier TV
- Construye un Reloj Maestro LED Personalizado con Alarma – Visible desde 12 Metros
- Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
- Soluciones de Alimentación Optimizadas para Proyectos Arduino
- Tres en raya con Arduino, matriz LED MAX7219 y carcasa de cartón
- Construye un Robot Cuadrúpedo Inteligente con Arduino: Guía Paso a Paso
- Construye un volante joystick personalizado con Arduino para gaming
- Construye una Máquina CNC Totalmente Funcional con Arduino Nano R3
- Earth Analyzer: Kit Avanzado IoT de Sensores para Monitorización Ambiental