PH值算法
{PH_Dat = ((ADC_PH/12.41212121212121)*2); //4095/3.3=1240.909090909091,也就是說 1V電壓對應的AD值是這么多,用AD值除以系數,得到的就是電壓,這里需要保留兩位,然后乘以2,因為電路是分壓輸入的,分了一半//計算原理,之前的計算原理是按照人家提供的計算公式進行計算的,但是對于成品設計還好,不用動程序了,但是對于定制設計,在使用中發現移植效果不好,//因為要配合掉電存儲,大量的計算,移植起來比較麻煩,所以這里采用一種新的計算方法,移植起來很簡單,只要計算出PH輸出的電壓數據即可,計算出的電壓//保留兩位小數,然后直接代入下個公式,這個公式是自己推出來的,誤差目前測試三種溶液沒有超過 0.5 ,368這個數據來源是這樣,// PH 電壓 PH變化值 電壓變化值 電壓變化率// 4 3.00 // 6.86 2.50 2.86 0.5 0.1748251748251748// 9.18 2.11 2.32 0.39 0.1681034482758621//可以看出,PH越大,電壓越小// 從上面的統計可以看出,隨著PH的變化,他的電壓變化率并不是線性,這也是為什么人家會用一個復雜的計算公式來計算,所以這里我有個設想,假如說PH4的時候//電壓我調節為 3V,那選擇一個 0.17的系數,計算出從PH=0到 4,電壓值應該是變化了 0.68左右 0.17*4 = 0.68 ,既然這樣我就假如,PH0的時候電壓是 3.68V,保留兩位小數,就是 368 了if(PH_Dat>=368) PH_value=0;else {PH_value = (368-PH_Dat) /1.781505+((368-PH_Dat) /1.781505)*0.05; //368 是假定的Ph=0的電壓值,減去檢測到的電壓值,得到的就是電壓變化量,然后乘以變化率,就可以得到PHif(PH_value>140) PH_value=140; //從上面的表述可以看出變化率不是固定的,我在大量測試之后,寫了一個補償,計算出的數據加上他數據的0.05,這是自己憑感覺測試得出的,} }
總結
- 上一篇: python怎么去掉换行符_如何在Pyt
- 下一篇: VS2019 error LNK1104