基于STM8S單片機的數字壓力表的設計
壓力是重要的熱工參數之一,各種氣體、液體的壓力測量在生產生活、工業現場、科學實驗等領域有著廣泛的 應用。這里采用STM8S單片機作為主控制單元,提出一種新型數字壓力表的設計方法。介紹壓阻式壓力傳感器的測量原理 和系統的整體框架,并描述相應的軟硬件設計的方法,特別是在軟件方面的處理,包括壓力采集和標定校準算法。實驗結果 顯示,壓力數據顯示較為穗定,能夠滿足基本的精度要求。設計的數字壓力表簡單,易用,便于攜帶。
在工業生產和科研活動中,壓力計量往往是重要環 節,甚至成為了保證產品質量以及生產安全的決定因 素。傳統的數字壓力表是沿用機械壓力表來顯示的,在 光線弱煙霧多的環境中,不僅難以識別具體壓力值,而 且靈敏度,可視度,誤差范圍以及機械指針表普遍存在 的滯針,跳針,機械器件自然磨損等通病。所以設計一種 簡單、可視度高的便捷式數字壓力表是很有實際意義的。
1.壓阻式壓力傳感器的測量原理
壓力傳感器可以把壓力信號轉換成可測量的電信 號,特點是精度高、線性一致、重復性好' 將壓力的變 化轉換成電阻變化的傳感器被稱為壓阻式壓力傳感器, 當需要進行高精度測量時,通常采用此種傳感器,其內 部是一個惠斯通電橋,電路結構如圖1所示。
壓阻式壓力傳感器是集成電路丁藝技術在硅片上 制造出4個等值的薄膜電阻,并組成電橋電路。當不受力作用時,電橋處于平衡狀態,無電壓輸出;當受到力作 用時,電橋失去平衡,輸出與應力成正比的電壓。不同 類型的壓力傳感器輸出信號大小是不一樣的,一般常用 的有2~3種,凈輸出2 mV/V,10 mV/V等。設計中采用 的是凈輸出2 mV/V的硅壓阻式壓力傳感器BYP100,信 號輸出較為穩定。
2.系統整體框圖
本系統的整體框圖如圖2所示,系統主要包括了 STM8S單片機模塊和外圍電路,外圍電路有液晶顯示模 塊、按鍵電路以及放大器電路。系統電源供電采用5 V的穩壓電壓。
STM8S單片機系列是8位的低功耗的單片機,丁作 的電壓范圍為2.95~5.5 V,可支持干電池供電丁作,并 提供真正的E2PROM數據寫人操作,可達30萬次擦寫極 限,有利于數據的掉電保護。該系列單片機有10位 ADC,最多有16個采集通道。
3.硬件設計
3.1放大器電路
放大器電路主要采用的是MCP6022芯片,內部結 構如圖3所示。MCP6022是高性能的軌對軌輸人/輸出 運算放大器,帶寬為10 MHz,噪聲為8.7(10 kHz),低失 調電壓為±500~ ±250 pV,總諧波失真為0.000 53%,電 源電壓范圍為2.5 - 5.5 V,滿足系統的設計要求。
MCP6022的2腳和3腳接收傳感器的壓力輸人信 號,MCP6022的1腳出來的就是放大后的傳感器壓力輸 出信號,供給單片機AD通道采集。MCP6022的8腳和4 腳分別接電源和地,給MCP6022芯片供電。
3.2 LCD顯示模塊
LCD顯示電路是采用的是HT1621芯片來驅動LCD 段碼液晶進行顯示。HT1621是128點內存映象和多功 能的LCD驅動器,HT1621的軟件配置特性使它適用于 多種LCD應用場合包括LCD模塊和顯示子系統,用于 連接主控制器和HT1621的管腳只有4或5條,重要的是 HT1621還有一個節電命令用于降低系統功耗。
通過設置對應的占空比、偏壓比、以及LCD驅動電 壓等驅動LCD段碼液晶顯示。本系統采用占空比為 1/4,偏壓比1/3,LCD驅動電壓為5 V來驅動4段6位的 LCD段碼液晶。
4.軟件設計
4.1壓力采集算法設計
為了保證采集的壓力數據在壓力表上能夠顯示穩 定,波動范圍較小,滿足能夠外界壓力變化下壓力值的 連續變化,并且消除由于一些干擾引起的采樣值的偏 差,需要設計對應的壓力采集處理算法' 壓力處理過 程如圖4所示。
壓力采集通過定時器控制50 ms采集1次。定義一 個包含10個數據元素的浮點型緩沖區數組buf,用 來存放采集的A/D值value,并返回10個數據元素的平 均值avervalue作為標定計算中的電壓值。
當填滿緩沖區的值后,下一次采集之前先將數組中 的元素用上一次的平均值填滿,然后采集到的一個A/D 值利用先進先出的方法存人緩沖區數組中。其中,如果 當前采集到的A/D值,與當前顯示的A/D值之間的差值 在10個范圍之內,差值大于10的,將當前的A/D值加 0.2再存人數組中;差值小于10的,將當前壓力值減0.2 存人數組。
程序部分代碼如下:
if ( ( value>avervalue-10) &&( value<avervalue+110))
{
if((value>avervalue-10)&& (value<=avervalue))
{
for(i=0; i<9; i++) buf[i]=buf[i+1]; buf[9]=value+0.2;
}
if ( (value<avervalue+10)&&(value>=avervalue))
{
for(i=0; i<9; i++) buf[i]=buf[i+1]; buf[9]=value-0.2;
}
}
else
{
for(i=0;i<9; i++) buf[i]=buf[i+1]; buf[9]=value;
}
4.2標定校準設計
為了減少誤差,保證數字壓力表的精度,可以采用 多點校準,也就是利用多條線段來模擬接近真實的壓 力傳感器的輸出曲線[4]。本文采用的是三點校準的方 法,分別是在零點,半量程和滿量程這三個點,設計精度 在0.5%左右。具體標定過程如圖5所示。
利用按鍵1和按鍵2之間的配合來采集多個點的壓 力值。通過標定過程采集各個點的電壓A/D值作為標 定值。標定采用的公式為:
P = (p[i +1] - P[i])/iV[i + 1] - V盼- V[i]) + p[i]
式中:P[i]是多點校準中對應的i點的壓力值;V[i]是多點 校準中對應的i點的電壓值;V是經過壓力算法處理過 的值。
對于獲得更加精確的壓力值顯示,可以采用繼續增 加校準的點數的方法來標定。另外已經標定過的電壓 值可以存儲到單片機的E2PROM中,提供掉電數據的保 護,避免重復標定。
5.測試與結論
經過實驗測試,在5 V穩壓電源供電下,設計使用 量程在1 000 kPa下,采用3點標定校準的情況下,數字 壓力表顯示的數據跳動范圍為1~4 kPa,數據顯示較為 穩定,能夠達到0.5級的精度要求。如表1所示的壓力 數據。
6.結語
設計的數字壓力表采用的是STM8S系列單片機作 為控制單元,滿足一定的測量精度,5更件電路簡單,軟件 設計可靠,對于便捷式、可視化、誤差小的數字壓力表的 設計具有一定的參考意義。
下一篇:通用壓力表校準臺的研制