pH標度用于測量液體的酸度和堿度。它的讀數范圍為 1-14,其中 1 表示酸性最強的液體,14 表示最基本的液體。7 pH 適用于既非酸性也非堿性的中性物質?,F在,pH 在我們的生活中扮演著非常重要的角色,它被用于各種應用。例如,它可以在游泳池中用于檢查水質。同樣,pH 測量用于農業、廢水處理、工業、環境監測等多種應用。
在這個項目中,我們將制作一個Arduino pH 計,并學習如何使用重力 pH 傳感器和 Arduino 測量液體溶液的 pH 值。16x2 LCD用于在屏幕上顯示 pH 值。我們還將學習如何校準 pH 傳感器以確定傳感器的精度。所以讓我們開始吧!
所需組件
阿杜諾烏諾
16*2 字母數字液晶屏
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直流輸入
G:接地引腳
Po: pH模擬輸出
做: 3.3V直流輸出
至:溫度輸出
pH電極結構:
pH 傳感器的結構如上圖所示。pH 傳感器看起來像一根通常由玻璃材料制成的桿,其尖端稱為“玻璃膜” 。該膜填充有已知 pH 值(通常 pH = 7)的緩沖溶液。這種電極設計確保了在玻璃膜內部不斷結合 H+ 離子的環境。當探針浸入待測溶液時,測試溶液中的氫離子開始與玻璃膜上的其他帶正電離子交換,從而在膜上產生電化學電位,該電位被饋送到測量電位的電子放大器模塊在兩個電極之間并將其轉換為pH 單位。 這些電位之間的差異決定了基于 Nernst 方程的 pH 值。
能斯特方程:
Nernst 方程給出了電化學電池的電池電位、溫度、反應商和標準電池電位之間的關系。在非標準條件下,Nernst 方程用于計算電化學電池中的電池電位。Nernst 方程還可用于計算全電化學電池的總電動勢 (EMF)。該方程也用于計算溶液的 PH 值。玻璃電極響應由 Nernst 方程控制,可以給出:
E = E0 - 2.3 (RT/nF) ln Q
?
在哪里 Q=反應系數 E = 電極的 mV 輸出 E0 = 電極的零偏移 R = 理想氣體常數 = 8.314 J/mol-K T = 溫度,單位 oK F = 法拉第常數 = 95,484.56 C/mol N = 離子電荷
?
Arduino pH計電路圖
這個Arduino pH計項目的電路圖如下:
pH信號轉換板與Arduino的連接:
Arduino與PH信號轉換板的連接如下表所示。
為 pH 計編程 Arduino
硬件連接成功后,現在是對 Arduino 進行編程的時候了。這個帶有 Arduino 的 pH 計的完整代碼在本教程的底部給出。該項目的逐步解釋如下。
在程序中要做的第一件事是包含所有必需的庫。在我的例子中,我包含了用于使用 LCD 顯示器的 I2C 接口的“?LiquidCrystal_I2C.h”庫和用于在 Arduino 上使用 I2C 功能的“?Wire.h ”。
?
#include#include LiquidCrystal_I2C lcd(0x27, 16, 2);
?
接下來,定義校準值,可以根據需要對其進行修改,以獲得準確的溶液 pH 值。(這在文章后面會解釋)
?
浮動校準值 = 21.34;
?
在setup() 中,編寫了 LCD 命令用于在 LCD 上顯示歡迎消息。
?
液晶顯示器(); lcd.begin(16, 2); 液晶背光(); lcd.setCursor(0, 0); lcd.print("歡迎來到"); lcd.setCursor(0, 1); lcd.print("電路文摘"); 延遲(2000); lcd.clear();
?
在loop() 內部,讀取 10 個樣本模擬值并將它們存儲在一個數組中。這是平滑輸出值所必需的。
?
for(int i=0;i<10;i++) { buffer_arr[i]=analogRead(A0); 延遲(30); }
?
然后,按升序對接收到的模擬值進行排序。這是必需的,因為我們需要在后期計算樣本的運行平均值。
?
for(int i=0;i<9;i++) { for(int j=i+1;j<10;j++) { 如果(buffer_arr[i]>buffer_arr[j]) { temp=buffer_arr[i]; buffer_arr[i]=buffer_arr[j]; buffer_arr[j]=溫度; } } }
?
最后,計算一個 6 個中心樣本 Analog 值的平均值。然后將該平均值轉換為實際的 pH 值并打印在 LCD 顯示器上。
?
for(int i=2;i<8;i++) avgval+=buffer_arr[i]; 浮動電壓=(浮動)avgval*5.0/1024/6; 浮動 ph_act = -5.70 * 伏特 + 校準值; lcd.setCursor(0, 0); lcd.print("pH值:"); lcd.setCursor(8, 0); lcd.print(ph_act); 延遲(1000); }
?
pH電極的校準
PH 電極的校準在這個項目中非常重要。為此,我們需要一個我們知道其價值的解決方案。這可以作為傳感器校準的參考解決方案。
假設我們有一個 PH 值為 7 的溶液(蒸餾水)?,F在將電極浸入參比溶液中,LCD 上顯示的 PH 值為 6.5。然后校準它,只需在代碼中的校準變量“ calibration_value”中添加7-6.5=0.5。即使值21.34 + 0.5=21.84。進行這些更改后,再次將代碼上傳到 Arduino 并通過將電極浸入參考溶液中重新檢查 pH 值?,F在 LCD 應該顯示正確的 pH 值,即7(變化很?。?。同樣,調整此變量以校準傳感器。然后檢查所有其他解決方案以獲得準確的輸出。
測試 Arduino pH 測試儀
我們已經將這款 Arduino pH 計浸入純水和檸檬水中,您可以看到下面的結果。
純凈水:
檸檬水:
這就是我們如何使用 Arduino 構建 pH 傳感器并使用它來檢查各種液體的 pH 值。
#include
#include
LiquidCrystal_I2C lcd(0x27, 16, 2);
浮動校準值 = 21.34;
int phval = 0;
unsigned long int avgval;
int buffer_arr[10],溫度;
無效設置()
{
序列號.開始(9600);
液晶顯示器();
lcd.begin(16, 2);
液晶背光();
lcd.setCursor(0, 0);
lcd.print("歡迎來到");
lcd.setCursor(0, 1);
lcd.print("電路文摘");
延遲(2000);
lcd.clear();
}
無效循環(){
for(int i=0;i<10;i++)
{
buffer_arr[i]=analogRead(A0);
延遲(30);
}
for(int i=0;i<9;i++)
{
for(int j=i+1;j<10;j++)
{
如果(buffer_arr[i]>buffer_arr[j])
{
temp=buffer_arr[i];
buffer_arr[i]=buffer_arr[j];
buffer_arr[j]=溫度;
}
}
}
平均價值=0;
for(int i=2;i<8;i++)
avgval+=buffer_arr[i];
浮動電壓=(浮動)avgval*5.0/1024/6;
浮動 ph_act = -5.70 * 伏特 + 校準值;
lcd.setCursor(0, 0);
lcd.print("pH值:");
lcd.setCursor(8, 0);
lcd.print(ph_act);
延遲(1000);
}
評論
查看更多