周繼裕 陳思露 符少文
摘 要: 為了提高電子秤的抗干擾性和數(shù)據(jù)的準(zhǔn)確性,介紹基于均值滑動(dòng)濾波算法和STM32電子秤的設(shè)計(jì)。選用電阻應(yīng)變片構(gòu)成的惠斯通電橋傳感器采集重物信號(hào),24位HX711 A/D模塊完成電信號(hào)的放大和轉(zhuǎn)換,在STM32內(nèi)實(shí)現(xiàn)軟件濾波,采用滑動(dòng)均值濾波算法,減小誤差,提高數(shù)據(jù)的準(zhǔn)確度。通過軟硬件結(jié)合的方法進(jìn)行校正。矩陣鍵盤輸入控制指令實(shí)現(xiàn)設(shè)置單價(jià)、計(jì)算物品金額并實(shí)現(xiàn)金額累加和去皮等功能。實(shí)驗(yàn)測(cè)試表明,該電子秤測(cè)量范圍是0~500 g,誤差不超過±1 g,稱重反應(yīng)靈敏,5 s左右讀數(shù)穩(wěn)定。
關(guān)鍵詞: 滑動(dòng)均值濾波; 電阻應(yīng)變片; HX711; STM32
中圖分類號(hào): TN99?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 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
電子秤是一種通過作用在物體上的重力來測(cè)定該物體質(zhì)量的一種計(jì)量儀器。因其操作簡單、稱量準(zhǔn)確、體積小、稱量速度快、讀數(shù)方便,被廣泛應(yīng)用于商業(yè)貿(mào)易、醫(yī)院、學(xué)校、企業(yè)等部門[1?2]。而懸臂式電子秤是一種鐵質(zhì)懸臂梁固定在支架上,懸臂梁上粘貼電阻應(yīng)變片作為稱重傳感器進(jìn)行感應(yīng)相應(yīng)重量變化的電子秤。提出一種在懸臂梁上粘貼電阻應(yīng)變片構(gòu)成惠斯通電橋[3]作為稱重傳感器采集數(shù)據(jù),HX711作為A/D轉(zhuǎn)換器,STM32為主控器的電子秤,采用滑動(dòng)均值濾波算法[4],減小各種干擾和提高數(shù)據(jù)的準(zhǔn)確性。
1 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)以STM32為控制核心,采用電阻應(yīng)變片和精密電阻構(gòu)成惠斯通電橋電路作為稱重傳感器,通過電子秤專用的HX711 A/D芯片轉(zhuǎn)換成電信號(hào)并進(jìn)行放大處理,處理后的數(shù)據(jù)送到STM32中進(jìn)行處理,從數(shù)據(jù)中總結(jié)出,重量與電壓或者電阻的關(guān)系。通過它們之間的關(guān)系可以根據(jù)電壓變化得出相應(yīng)的重量。TFT液晶屏用于顯示各種參數(shù),用矩陣鍵盤通過STM32主控系統(tǒng)設(shè)置的指令執(zhí)行相應(yīng)的命令。系統(tǒng)框圖如圖1所示。
1.1 電子秤的工作原理
設(shè)計(jì)選用電阻應(yīng)變片粘貼在懸臂梁上作為稱重傳感器來進(jìn)行重量信號(hào)的變換,把重量變換成電信號(hào)。當(dāng)有重物放置到秤盤上時(shí),懸臂梁發(fā)生彎曲,彎曲程度與放置物重量有對(duì)應(yīng)關(guān)系。粘貼在上面的電阻應(yīng)變片感應(yīng)到相應(yīng)的信號(hào),輸出微弱的電壓信號(hào)。HX711對(duì)這個(gè)電壓信號(hào)進(jìn)行放大和A/D轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)字信號(hào)送給 STM32控制核心進(jìn)行處理,先對(duì)數(shù)字信號(hào)進(jìn)行數(shù)字濾波等處理,在TFT液晶屏上顯示出來。電子秤的結(jié)構(gòu)圖如圖2所示。
1.2 稱重傳感器
將電阻應(yīng)變片貼在鐵質(zhì)懸臂梁適當(dāng)?shù)奈恢蒙?,使它里面的金屬箔材隨著尺子的彎曲一起伸縮,這樣電阻應(yīng)變片的電阻就會(huì)隨著應(yīng)變片的伸縮按一定的規(guī)律變化。應(yīng)變片就是應(yīng)用這個(gè)原理[5?6],通過測(cè)量電阻的變化而對(duì)應(yīng)變進(jìn)行測(cè)定。其電阻變化率為常數(shù),與應(yīng)變成正比例關(guān)系,即:
電阻的變化率可以通過惠斯通電橋間接測(cè)量。先對(duì)測(cè)量數(shù)據(jù)進(jìn)行統(tǒng)計(jì)、分析,然后用公式進(jìn)行計(jì)算。最終得出[R]與[ΔR]的比例系數(shù)。使用惠斯通電橋[3]電路,將電阻應(yīng)變片的電阻變化轉(zhuǎn)換為電壓信號(hào)的變化,具有結(jié)構(gòu)簡單、靈敏度高、測(cè)量范圍大、線性度好且易實(shí)現(xiàn)溫度補(bǔ)償?shù)忍攸c(diǎn)。
對(duì)電橋電路的選擇進(jìn)行了簡單的實(shí)驗(yàn)后發(fā)現(xiàn)單臂的性能比雙臂和全橋的差,而雙臂和全橋的性能在各方面相差不大,從節(jié)省元件方面出發(fā),故采用雙臂電橋電路。惠斯通電橋電路如圖3所示,圖中[R2]和[R3]為電阻應(yīng)變片,[R1]和[R4]為精密電阻阻值均為1 kΩ,其電阻應(yīng)變片初始阻值均為1 kΩ。P1為Uo,BT1為E,則該電橋輸出電壓為:
1.3 A/D 轉(zhuǎn)換器的選擇
HX711是一款電子秤專用的高精度24位A/D轉(zhuǎn)換器芯片。芯片內(nèi)部集成了電源、時(shí)鐘振蕩器等其他電路,具有集成度高、響應(yīng)速度快、抗干擾性強(qiáng)等優(yōu)點(diǎn)[8?9]。與后端MCU 芯片的接口和編程非常簡單。工作時(shí)是通過簡單的數(shù)字控制和串口通信:所有控制由管腳輸入,芯片內(nèi)寄存器無需編程,輸出數(shù)據(jù)編碼二進(jìn)制補(bǔ)碼。電路簡單,易于控制和使用。芯片的分辨率高,系統(tǒng)測(cè)得的數(shù)據(jù)比較精確。電路如圖4所示。
2 軟件設(shè)計(jì)
2.1 模塊化子程序的設(shè)計(jì)
本程序設(shè)計(jì)使用的是Keil Software公司開發(fā)的MDK5軟件,使用模塊化思想進(jìn)行編程,液晶屏顯示、矩陣鍵盤、A/D模塊、極大極小值滑窗均值濾波子程序、定時(shí)器中斷以及字符字模處理顯示等子程序都以模塊的結(jié)構(gòu)方式編寫在不同的C文件中,函數(shù)與參數(shù)變量使用頭文件進(jìn)行傳遞,使得程序結(jié)構(gòu)清晰明朗,出現(xiàn)問題易于查找糾正。程序流程圖如圖5所示。
2.2 滑動(dòng)均值濾波算法
經(jīng)過A/D轉(zhuǎn)換后的數(shù)據(jù)信號(hào)存在著很多干擾的信號(hào),需要把無用的信號(hào)濾除掉,采用了極大極小值滑窗均值濾波算法。該算法是由均值滑動(dòng)算法演變而來[4]。令[u(n)]為稱重傳感器[n]時(shí)刻的采樣值,[L]為滑窗均值濾波器的窗口長度,則[n]時(shí)刻濾波器的輸出值[x(n)]為[10]:
由式(4)可知,滑動(dòng)均值濾波算法采集[L]個(gè)數(shù)據(jù)并分別存入[L]個(gè)內(nèi)存單元,完成[L]個(gè)稱重?cái)?shù)據(jù)的初次采樣后,每采樣一次[L]個(gè)內(nèi)存單元按順序移出一個(gè)最初的數(shù)據(jù),并移入本次采樣的數(shù)據(jù),去除本次[L]個(gè)數(shù)據(jù)的最大最小值后,求取剩余[L-2]個(gè)數(shù)據(jù)的均值[10]。 通過實(shí)驗(yàn)和根據(jù)選用的A/D轉(zhuǎn)換速率,選取[L=10],這樣,在編程處理A/D模塊輸出的數(shù)據(jù)時(shí),使用了去最值取均值的數(shù)字濾波法,從A/D模塊讀回的每一個(gè)數(shù)據(jù)都要與前9個(gè)數(shù)據(jù)中的最大最小值比較,并將比較后的10個(gè)數(shù)中的最大最小值剔除,對(duì)剩余的8個(gè)數(shù)據(jù)求平均,實(shí)現(xiàn)對(duì)誤差較大的數(shù)據(jù)進(jìn)行剔除,提高了系統(tǒng)的穩(wěn)定性和抗干擾性。
3 實(shí)驗(yàn)測(cè)試
通過軟硬件結(jié)合設(shè)計(jì),對(duì)該系統(tǒng)進(jìn)行測(cè)試。測(cè)試使用標(biāo)準(zhǔn)砝碼,測(cè)試結(jié)果保留兩位小數(shù)。
加入標(biāo)準(zhǔn)砝碼,將砝碼的質(zhì)量和相應(yīng)的A/D輸出值記錄在表1,通過表1的數(shù)據(jù)找出砝碼質(zhì)量與A/D輸出值的關(guān)系。
由上述對(duì)表1的數(shù)據(jù)計(jì)算和它的相應(yīng)曲線圖(圖6)可以得出,A/D輸出值與砝碼質(zhì)量的比值逐漸減小,但是變化不大。因此可以根據(jù)K值和A/D輸出值來計(jì)算出物品的質(zhì)量。又因?yàn)槌咦影l(fā)生彈性形變后,由于各種原因不能恢復(fù),所以測(cè)量值會(huì)存在一定的誤差。
加入標(biāo)準(zhǔn)砝碼,記錄砝碼質(zhì)量和實(shí)測(cè)質(zhì)量,并且計(jì)算出它的相對(duì)誤差,見表2。
4 結(jié) 論
本文研究基于均值滑動(dòng)濾波算法和STM32電子秤的設(shè)計(jì)與實(shí)現(xiàn),將電阻應(yīng)變片構(gòu)成的惠斯通電橋作為稱重傳感器采集重量信號(hào),應(yīng)用HX711完成信號(hào)的放大和轉(zhuǎn)換成數(shù)字信號(hào),在 STM32運(yùn)用均值滑動(dòng)濾波算法對(duì)數(shù)據(jù)進(jìn)行濾波處理,減小干擾,提高數(shù)據(jù)的準(zhǔn)確性。通過實(shí)驗(yàn)測(cè)試,該電子秤可以測(cè)量0~500 g質(zhì)量,測(cè)量誤差小,具有一定的應(yīng)用價(jià)值。
參考文獻(xiàn)
[1] 王德清,胡曉毅,賈宏,等.基于SPCE061A的高精密電子秤設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2008(5):83?85.
[2] 佟瑩欣.基于C8051F350的高精度低成本電子秤[J].遼寧科技學(xué)院學(xué)報(bào),2008(3):9?10.
[3] 樊毅,秦會(huì)斌.基于STM32的高精度電子天平[J].機(jī)電工程,2013(1):51?54.
[4] 譚興文,韓力.惠斯通電橋靈敏度的探究[J].西南師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2008(4):149?152.
[5] 李巧真,李剛,韓欽澤.電阻應(yīng)變片的實(shí)驗(yàn)與應(yīng)用[J].實(shí)驗(yàn)室研究與探索,2011(4):134?137.
[6] 閆好奎,任建國.電阻應(yīng)變片的工作原理[J].計(jì)量與測(cè)試技術(shù),2013(4):12.
[7] 郁有文,常健,程繼紅.傳感器原理及工程應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2008:40?54.
[8] 李從宏,嚴(yán)影.基于NRF24L01的多點(diǎn)無線稱重系統(tǒng)節(jié)點(diǎn)設(shè)計(jì)[J].信息技術(shù),2015(6):69?71.
[9] 崔陸軍,郭虹虹,郭江濤.一種用于沖床的壓力測(cè)試系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2015,23(3):693?695.
[10] 羅及紅.一種高精度的電子秤設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2010,18(8):1955?1958.