pH刻度用于测量液体的酸度和碱性。它的读数范围为1-14,其中1显示最酸性的液体,而14显示最碱性的液体。7 pH适用于既不是酸性也不是碱性的中性物质。现在,pH在我们的生活中起着非常重要的作用,并且被用于各种应用中。例如,它可以在游泳池中使用以检查水质。同样,pH测量可用于多种应用,例如农业,废水处理,工业,环境监测等。
在这个项目中,我们将制造一个Arduino pH Meter,学习如何使用重力pH传感器和Arduino测量液体溶液的pH。16x2 LCD用于在屏幕上显示pH值。我们还将学习如何校准pH传感器以确定传感器的精度。因此,让我们开始吧!
所需组件
- Arduino Uno
- 16 * 2字母数字LCD
- LCD I2C模块
- 重力模拟pH传感器
- 连接线
- 面包板
什么是pH值?
我们用来测量物质酸度的单位称为pH 。术语“ H”定义为氢离子浓度的负对数。pH的范围可以是0到14。pH值为7是中性的,因为纯净水的pH值恰好是7。低于7的值是酸性,大于7的值是碱性或碱性。
重力模拟pH传感器如何工作?
模拟pH传感器旨在测量溶液的pH值并显示物质的酸度或碱度。它通常用于各种应用,例如农业,废水处理,工业,环境监测等。该模块具有板载稳压器芯片,该芯片支持3.3-5.5V DC的宽电压电源,与5V和像Arduino这样的任何控制板的3.3V电压。输出信号正在被硬件低抖动滤波。
技术特点:
信号转换模块:
- 供电电压:3.3〜5.5V
- BNC探针连接器
- 高精度:±0.1@25°C
- 检测范围:0〜14
PH电极:
- 工作温度范围:5〜60°C
- 零(中性)点:7±0.5
- 易于校准
- 内阻:<250MΩ
pH信号转换板:
引脚说明:
V +: 5V DC输入
G:接地脚
Po: pH模拟输出
做: 3.3V DC输出
至:温度输出
pH电极构造:
pH传感器的结构如上所示。所述pH传感器看起来像通常由具有被称为“玻璃膜”尖端的玻璃材料的杆。该膜充满已知pH(通常pH = 7)的缓冲溶液。这种电极设计确保了H +离子在玻璃膜内部恒定结合的环境。当将探针浸入待测溶液中时,待测溶液中的氢离子开始与玻璃膜上的其他带正电的离子交换,从而在整个膜上产生电化学势,该电化学势被馈送到测量电位的电子放大器模块在两个电极之间并将其转换为pH单位。这些电势之间的差根据能斯特方程确定pH值。
能斯特方程式:
能斯特方程式给出了电化学电池的电池电势,温度,反应商和标准电池电势之间的关系。在非标准条件下,能斯特方程用于计算电化学电池中的电池电势。Nernst方程还可以用于计算整个电化学电池的总电动势(EMF)。该方程式也用于计算溶液的PH值。玻璃电极响应受能斯特方程的控制,可以表示为:
E = E0 - 2.3(RT / nF的)LN Q 其中Q =反应系数E =从电极E 0 =零MV输出用于ºKF中的电极R =理想气体常数= 8.314焦耳/摩尔-K T =温度偏移量=法拉第常数= 95,484.56 C / mol N =离子电荷
Arduino pH测量仪电路图
该Arduino pH测量仪项目的电路图如下所示:
pH信号转换板与Arduino的连接:
Arduino和PH信号转换板之间的连接如下表所示。
Arduino的 |
PH传感器板 |
5伏 |
V + |
地线 |
G |
A0 |
宝 |
为ph计编程Arduino
成功的硬件连接后,现在该对Arduino进行编程了。本教程的底部提供了带Arduino的pH计的完整代码。该项目的逐步说明如下。
该程序中要做的第一件事是包括所有必需的库。在这里,在我的情况,我已经包括了“ LiquidCrystal_I2C.h” 使用的液晶显示器和“的I2C接口库 Wire.h ”关于使用Arduino的I2C功能。
#包括
接下来,定义校准值,可以根据需要对其进行修改以获取溶液的准确pH值。(这将在本文后面进行解释)
浮动标定值= 21.34;
在 setup() 内部 , 编写了LCD命令以在LCD上显示欢迎消息。
lcd.init(); lcd.begin(16,2); lcd.backlight(); lcd.setCursor(0,0); lcd.print(“欢迎使用”); lcd.setCursor(0,1); lcd.print(“ Circuit Digest”); delay(2000); lcd.clear();
在 loop() 内部 , 读取10个样本模拟值并将它们存储在数组中。这是平滑输出值所必需的。
for(int i = 0; i <10; i ++){buffer_arr = analogRead(A0); 延迟(30); }
然后,按升序对收到的模拟值进行排序。这是必需的,因为我们需要在以后的阶段中计算样本的移动平均值。
for(int i = 0; i <9; i ++){for(int j = i + 1; j <10; j ++){if(buffer_arr> buffer_arr){temp = buffer_arr; buffer_arr = buffer_arr; buffer_arr = temp; }}}
最后,计算6个中心样本模拟值的平均值。然后将该平均值转换为实际的pH值并打印在LCD显示屏上。
for(int i = 2; i <8; i ++)avgval + = buffer_arr; 浮点电压=(float)avgval * 5.0 / 1024/6; 浮点ph_act = -5.70 *伏+校准值; lcd.setCursor(0,0); lcd.print(“ pH Val:”); lcd.setCursor(8,0); lcd.print(ph_act); 延迟(1000); }
pH电极校准
PH电极的校准在该项目中非常重要。为此,我们需要一个其价值众所周知的解决方案。可以将其用作传感器校准的参考解决方案。
假设我们有一个溶液的PH值为7(蒸馏水)。现在,将电极浸入参比溶液中时,LCD上显示的PH值为6.5。然后对其进行校准,只需在代码中的校准变量“ calibration_value” 中添加 7-6.5 = 0.5 。即使值 21.34 + 0.5 = 21.84 。进行这些更改后,再次将代码上传到Arduino,然后通过将电极浸入参考溶液中来重新检查pH。现在LCD应该显示正确的pH值,即7(很小的变化是相当大的)。同样,调整此变量以校准传感器。然后检查所有其他解决方案以获取准确的输出。
测试Arduino pH测试仪
我们已经通过将其浸入纯水和柠檬水中尝试了Arduino pH计,您可以在下面看到结果。
纯净水:
柠檬水:
这就是我们可以使用Arduino构建pH传感器并用来检查各种液体的pH值的方式。
完整的代码和演示视频 如下。