周繼裕 陳思露 符少文
摘 要: 為了提高電子秤的抗干擾性和數據的準確性,介紹基于均值滑動濾波算法和STM32電子秤的設計。選用電阻應變片構成的惠斯通電橋傳感器采集重物信號,24位HX711 A/D模塊完成電信號的放大和轉換,在STM32內實現軟件濾波,采用滑動均值濾波算法,減小誤差,提高數據的準確度。通過軟硬件結合的方法進行校正。矩陣鍵盤輸入控制指令實現設置單價、計算物品金額并實現金額累加和去皮等功能。實驗測試表明,該電子秤測量范圍是0~500 g,誤差不超過±1 g,稱重反應靈敏,5 s左右讀數穩定。
關鍵詞: 滑動均值濾波; 電阻應變片; HX711; STM32
中圖分類號: TN99?34 文獻標識碼: A 文章編號: 1004?373X(2017)10?0010?03
Abstract: In order to improve the anti?jamming and data accuracy of electronic scale, the design of the electronic scale based on the mean sliding filter algorithm and STM32 is introduced in this paper. The Wheatstone bridge sensor with the structure of resistance strain gage is selected to collect weight signal. 24 bit HX711 A/D module is adopted to complete the signal amplification and conversion to realize software filtering in STM32.Tthe sliding men filtering algorithm is used to reduce the error and improve the data accuracy. The correction is executed with the method combining the software and hardware. Matrix keyboard input control instructions are employed to set the unit price, calculate the amount of item and achieve the money accumulation and peeling, and other functions. The experimental results show that the measurement range of the electronic scale is 0~500 g, its error is not more than ±1 g, and has sensitive weighing response and about 5 s stable reading.
Keywords: sliding mean filter; resistance strain gage; HX711; STM32
電子秤是一種通過作用在物體上的重力來測定該物體質量的一種計量儀器。因其操作簡單、稱量準確、體積小、稱量速度快、讀數方便,被廣泛應用于商業貿易、醫院、學校、企業等部門[1?2]。而懸臂式電子秤是一種鐵質懸臂梁固定在支架上,懸臂梁上粘貼電阻應變片作為稱重傳感器進行感應相應重量變化的電子秤。提出一種在懸臂梁上粘貼電阻應變片構成惠斯通電橋[3]作為稱重傳感器采集數據,HX711作為A/D轉換器,STM32為主控器的電子秤,采用滑動均值濾波算法[4],減小各種干擾和提高數據的準確性。
1 系統硬件設計
系統以STM32為控制核心,采用電阻應變片和精密電阻構成惠斯通電橋電路作為稱重傳感器,通過電子秤專用的HX711 A/D芯片轉換成電信號并進行放大處理,處理后的數據送到STM32中進行處理,從數據中總結出,重量與電壓或者電阻的關系。通過它們之間的關系可以根據電壓變化得出相應的重量。TFT液晶屏用于顯示各種參數,用矩陣鍵盤通過STM32主控系統設置的指令執行相應的命令。系統框圖如圖1所示。
1.1 電子秤的工作原理
設計選用電阻應變片粘貼在懸臂梁上作為稱重傳感器來進行重量信號的變換,把重量變換成電信號。當有重物放置到秤盤上時,懸臂梁發生彎曲,彎曲程度與放置物重量有對應關系。粘貼在上面的電阻應變片感應到相應的信號,輸出微弱的電壓信號。HX711對這個電壓信號進行放大和A/D轉換,轉換后的數字信號送給 STM32控制核心進行處理,先對數字信號進行數字濾波等處理,在TFT液晶屏上顯示出來。電子秤的結構圖如圖2所示。
1.2 稱重傳感器
將電阻應變片貼在鐵質懸臂梁適當的位置上,使它里面的金屬箔材隨著尺子的彎曲一起伸縮,這樣電阻應變片的電阻就會隨著應變片的伸縮按一定的規律變化。應變片就是應用這個原理[5?6],通過測量電阻的變化而對應變進行測定。其電阻變化率為常數,與應變成正比例關系,即:
電阻的變化率可以通過惠斯通電橋間接測量。先對測量數據進行統計、分析,然后用公式進行計算。最終得出[R]與[ΔR]的比例系數。使用惠斯通電橋[3]電路,將電阻應變片的電阻變化轉換為電壓信號的變化,具有結構簡單、靈敏度高、測量范圍大、線性度好且易實現溫度補償等特點。
對電橋電路的選擇進行了簡單的實驗后發現單臂的性能比雙臂和全橋的差,而雙臂和全橋的性能在各方面相差不大,從節省元件方面出發,故采用雙臂電橋電路。惠斯通電橋電路如圖3所示,圖中[R2]和[R3]為電阻應變片,[R1]和[R4]為精密電阻阻值均為1 kΩ,其電阻應變片初始阻值均為1 kΩ。P1為Uo,BT1為E,則該電橋輸出電壓為:
1.3 A/D 轉換器的選擇
HX711是一款電子秤專用的高精度24位A/D轉換器芯片。芯片內部集成了電源、時鐘振蕩器等其他電路,具有集成度高、響應速度快、抗干擾性強等優點[8?9]。與后端MCU 芯片的接口和編程非常簡單。工作時是通過簡單的數字控制和串口通信:所有控制由管腳輸入,芯片內寄存器無需編程,輸出數據編碼二進制補碼。電路簡單,易于控制和使用。芯片的分辨率高,系統測得的數據比較精確。電路如圖4所示。
2 軟件設計
2.1 模塊化子程序的設計
本程序設計使用的是Keil Software公司開發的MDK5軟件,使用模塊化思想進行編程,液晶屏顯示、矩陣鍵盤、A/D模塊、極大極小值滑窗均值濾波子程序、定時器中斷以及字符字模處理顯示等子程序都以模塊的結構方式編寫在不同的C文件中,函數與參數變量使用頭文件進行傳遞,使得程序結構清晰明朗,出現問題易于查找糾正。程序流程圖如圖5所示。
2.2 滑動均值濾波算法
經過A/D轉換后的數據信號存在著很多干擾的信號,需要把無用的信號濾除掉,采用了極大極小值滑窗均值濾波算法。該算法是由均值滑動算法演變而來[4]。令[u(n)]為稱重傳感器[n]時刻的采樣值,[L]為滑窗均值濾波器的窗口長度,則[n]時刻濾波器的輸出值[x(n)]為[10]:
由式(4)可知,滑動均值濾波算法采集[L]個數據并分別存入[L]個內存單元,完成[L]個稱重數據的初次采樣后,每采樣一次[L]個內存單元按順序移出一個最初的數據,并移入本次采樣的數據,去除本次[L]個數據的最大最小值后,求取剩余[L-2]個數據的均值[10]。 通過實驗和根據選用的A/D轉換速率,選取[L=10],這樣,在編程處理A/D模塊輸出的數據時,使用了去最值取均值的數字濾波法,從A/D模塊讀回的每一個數據都要與前9個數據中的最大最小值比較,并將比較后的10個數中的最大最小值剔除,對剩余的8個數據求平均,實現對誤差較大的數據進行剔除,提高了系統的穩定性和抗干擾性。
3 實驗測試
通過軟硬件結合設計,對該系統進行測試。測試使用標準砝碼,測試結果保留兩位小數。
加入標準砝碼,將砝碼的質量和相應的A/D輸出值記錄在表1,通過表1的數據找出砝碼質量與A/D輸出值的關系。
由上述對表1的數據計算和它的相應曲線圖(圖6)可以得出,A/D輸出值與砝碼質量的比值逐漸減小,但是變化不大。因此可以根據K值和A/D輸出值來計算出物品的質量。又因為尺子發生彈性形變后,由于各種原因不能恢復,所以測量值會存在一定的誤差。
加入標準砝碼,記錄砝碼質量和實測質量,并且計算出它的相對誤差,見表2。
4 結 論
本文研究基于均值滑動濾波算法和STM32電子秤的設計與實現,將電阻應變片構成的惠斯通電橋作為稱重傳感器采集重量信號,應用HX711完成信號的放大和轉換成數字信號,在 STM32運用均值滑動濾波算法對數據進行濾波處理,減小干擾,提高數據的準確性。通過實驗測試,該電子秤可以測量0~500 g質量,測量誤差小,具有一定的應用價值。
參考文獻
[1] 王德清,胡曉毅,賈宏,等.基于SPCE061A的高精密電子秤設計與實現[J].電子技術應用,2008(5):83?85.
[2] 佟瑩欣.基于C8051F350的高精度低成本電子秤[J].遼寧科技學院學報,2008(3):9?10.
[3] 樊毅,秦會斌.基于STM32的高精度電子天平[J].機電工程,2013(1):51?54.
[4] 譚興文,韓力.惠斯通電橋靈敏度的探究[J].西南師范大學學報(自然科學版),2008(4):149?152.
[5] 李巧真,李剛,韓欽澤.電阻應變片的實驗與應用[J].實驗室研究與探索,2011(4):134?137.
[6] 閆好奎,任建國.電阻應變片的工作原理[J].計量與測試技術,2013(4):12.
[7] 郁有文,常健,程繼紅.傳感器原理及工程應用[M].西安:西安電子科技大學出版社,2008:40?54.
[8] 李從宏,嚴影.基于NRF24L01的多點無線稱重系統節點設計[J].信息技術,2015(6):69?71.
[9] 崔陸軍,郭虹虹,郭江濤.一種用于沖床的壓力測試系統設計[J].計算機測量與控制,2015,23(3):693?695.
[10] 羅及紅.一種高精度的電子秤設計[J].計算機測量與控制,2010,18(8):1955?1958.