亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

高精度 Arduino pH 计 – Atlas Scientific 传感器构建指南

项目简介

本项目使用 Atlas Scientific Gravity™ 模拟 pH 传感器套件(含 pH 电极、信号调理板)与 Arduino UNO 构建台式 pH 计,读数通过 20×4 I2C LCD 显示,并支持串口监视器校准。适用于水质监测、水培、水族箱、教学实验等场景。

核心特性

硬件清单

组件数量备注
Arduino UNO1
Atlas Scientific Gravity™ 模拟 pH 传感器板1含 BNC 接口、信号调理电路
Atlas Scientific 消费级 pH 复合电极1BNC 公头,玻璃球泡,含浸泡液瓶
20×4 字符 LCD (带 I2C 模块)1地址常为 0x27 或 0x3F
ABS 手持外壳 (158×90×60mm)1需自行开孔
迷你面包板1用于对比度电阻分压电路
220Ω / 1kΩ 电阻各 1LCD 对比度调节分压
11mm 铜柱螺丝套装4 套传感器板自带,共用 2 套固定 Arduino
亚克力底板 (135×62.5×3.2mm)1激光切割/带锯切割,安装主板
跳线、焊锡、热熔胶等若干

工具清单

电钻/钻头、干墙切割头、手锉、螺丝刀、台虎钳、带锯、热熔胶枪、电烙铁、数显卡尺、直尺、护目镜、手套、防尘口罩。

机箱加工与组装

步骤 1:外壳开孔

步骤 2:底板安装电子模块

  1. 亚克力板钻 4 个 2.38mm 通孔,一面沉头 (4.4mm 深 3mm) 用于铜柱螺丝平整锁紧
  2. 安装 4 根 11mm 铜柱(2 根固定 pH 板,2 根固定 Arduino)
  3. 依次锁装:pH 传感器板 → Arduino UNO → 迷你面包板
  4. 底板放入底盒,螺丝或热熔胶固定

步骤 3:LCD 安装

焊接 LCD 排针 → 插入盖板开窗 → 热熔胶固定边缘,避免遮挡显示区。

电路接线

原理图连接表

模块引脚Arduino 引脚说明
pH 板 VCC5V面包板汇总供电
pH 板 GNDGND面包板汇总地
pH 板信号输出A0模拟输入
LCD VCC5V
LCD GNDGND
LCD SDAA4I2C 数据
LCD SCLA5I2C 时钟
LCD 对比度调节—1kΩ 上拉 5V,220Ω 下拉 GND,中点接 LCD 对比度引脚 (通常为 Vo/V0)

软件准备

  1. 安装 LiquidCrystal 库(IDE 自带,搜索 "LiquidCrystal Built-in" 确认已安装)
  2. 安装 Atlas Gravity pH 库:下载 Atlas_gravity.zip → IDE → 草图 → 包含库 → 添加 .ZIP 库
  3. 复制项目代码至 IDE,编译上传

代码核心逻辑

#include "ph_grav.h"      // Atlas pH 传感器库
#include  // LCD 库

Gravity_pH pH = A0;                    // 绑定 A0 引脚
LiquidCrystal pH_lcd(2,3,4,5,6,7);     // RS, E, D4-D7 (非 I2C 接线时)
String inputstring = "";
boolean input_string_complete = false;
char inputstring_array[10];

void setup() {
  Serial.begin(9600);
  pH_lcd.begin(20,4);
  pH_lcd.print("--------------------");
  pH_lcd.setCursor(5,1); pH_lcd.print("pH Reading");
  if (pH.begin()) Serial.println("Loaded EEPROM");
  Serial.println("Use CAL,4 / CAL,7 / CAL,10 to calibrate");
  Serial.println("Use CAL,CLEAR to clear calibration");
}

void serialEvent() {
  inputstring = Serial.readStringUntil('\r');
  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* str) {
  strupr(str);
  if (strcmp(str, "CAL,4") == 0)    { pH.cal_low();  Serial.println("LOW CALIBRATED"); }
  else if (strcmp(str, "CAL,7") == 0) { pH.cal_mid();  Serial.println("MID CALIBRATED"); }
  else if (strcmp(str, "CAL,10") == 0) { pH.cal_high(); Serial.println("HIGH CALIBRATED"); }
  else if (strcmp(str, "CAL,CLEAR") == 0) { pH.cal_clear(); Serial.println("CALIBRATION CLEARED"); }
}

校准操作指南

准备:标准缓冲液 pH 4.00、7.00、10.00;若使用外部供电,校准前接通电源以建立正确基准。

  1. 取下浸泡瓶,用纯水冲洗电极
  2. 倒入 pH 4.00 缓冲液,浸没感应球泡,轻搅排气
  3. 观察串口监视器读数稳定(微小波动正常)
  4. 发送指令 cal,4 完成低点校准
  5. 重复上述步骤分别用 pH 7.00 发送 cal,7、pH 10.00 发送 cal,10
  6. 每次切换缓冲液务必冲洗电极
  7. 清除校准:发送 cal,clear

温度补偿说明

本传感器精度 ±0.2%,在 7-46°C 范围内满足精度要求。超出此范围需外接温度传感器(如 DS18B20)实现软件温度补偿。电极本身耐受 1-60°C。

常见问题

现象排查方向
读数漂移大/不稳电极老化/污染、缓冲液过期、供电纹波大、未共地
校准后仍偏差大校准顺序错误、缓冲液配制不准、电极未充分稳定、EEPROM 未保存
LCD 不显示/乱码I2C 地址错误 (扫描工具确认)、对比度电阻分压不对、排针虚焊
串口无输出波特率不匹配 (9600)、未选 "Carriage return"、USB 线仅供电无数据

扩展建议

资源链接

制造工艺

  1. DIY 蓝牙控制 Arduino 间谍小车
  2. FlickMote:基于手势的智能家居红外遥控器
  3. DIY Arduino TV-B-Gone:万能关机遥控器
  4. 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
  5. Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
  6. Arduino 项目优化供电方案:从按键开关到电池监测与数据记录
  7. Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
  8. 从零构建智能 Arduino 四足机器人:完整指南
  9. DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
  10. 利用 Arduino Nano R3 自制全功能 CNC 雕刻机
  11. Earth Analyzer:面向精准农业的多模态物联网环境监测巡检车
  12. 基于 Arduino Mega 与物联网传感器的高级家庭监控系统