楊 陽 ,浦 瀚 ,閆文娟
(1.南京機(jī)電職業(yè)技術(shù)學(xué)院 藍(lán)島創(chuàng)客空間,南京 211135;2.南京工業(yè)大學(xué) 電氣工程與控制科學(xué)學(xué)院,南京 211816;3.南京機(jī)電職業(yè)技術(shù)學(xué)院 電子工程系,南京211135)
隨著人們生活水平的不斷提高,商業(yè)行為也越來越現(xiàn)代化,人們對(duì)商品度量的速度和精度也提出了新的要求[1-3]。目前,壓力控制器是市面最常用的傳感器之一,并且都有一個(gè)共同之處——在現(xiàn)場(chǎng)通過壓力傳感器將數(shù)值顯示在當(dāng)前屏幕上;在當(dāng)前工業(yè)等精密控制領(lǐng)域中,重力控制器存在精密度低、異地查看數(shù)據(jù)困難的缺點(diǎn)。對(duì)此設(shè)計(jì)了一套基于ZigBee傳輸?shù)母呔葔毫刂破?。文中介紹了該系統(tǒng)的設(shè)計(jì)思想、方法及實(shí)施過程,分析了各個(gè)模塊的選用、功能及實(shí)現(xiàn)方法,包括系統(tǒng)的硬件構(gòu)成、傳感器的選擇、系統(tǒng)運(yùn)作流程圖等。
數(shù)字電子秤系統(tǒng)的控制核心單元使用STC89C52為CPU的控制模塊;傳感器使用精度高、穩(wěn)定性好的HL-8型電阻全橋式傳感器;A/D轉(zhuǎn)換模塊使用高分辨率和高精度的HX711。該系統(tǒng)組成如圖1所示。
圖1 系統(tǒng)組成Fig.1 System composition
應(yīng)變片式電阻傳感器是以使用應(yīng)變片為識(shí)別元件的傳感器。它具有以下優(yōu)勢(shì):精度高,測(cè)量范圍廣;頻率響應(yīng)特性好;應(yīng)變片種類繁多,價(jià)格便宜;系統(tǒng)接觸點(diǎn)的靈敏度高,集成度高,結(jié)構(gòu)簡(jiǎn)單[4-6]。
設(shè)計(jì)所采用的傳感器為全橋測(cè)量電路。在不受壓力時(shí),電橋處于平衡狀態(tài),輸出電壓為0 V;有壓力時(shí),電橋的橋臂電阻值發(fā)生近似于線性的變化,電橋逐步失去平衡。全橋測(cè)量電路中,將受力性質(zhì)相同的2片應(yīng)變片接入電橋?qū)?。使其輸出靈敏度比半橋大約增大了1倍,與此同時(shí),非線性誤差和溫度誤差也得到改善[7]。全橋測(cè)量電路的電路如圖2所示。
圖2 全橋測(cè)量電路Fig.2 Full bridge measuring circuit
根據(jù)系統(tǒng)的使用要求,必須使用達(dá)到10位的轉(zhuǎn)換精度的A/D轉(zhuǎn)換設(shè)備。設(shè)計(jì)時(shí),考慮到STC89C52單片機(jī)I/O口資源緊張等因素,最終確定使用HX711。其量化精度能夠達(dá)到1/4096,<(1/1000),符合設(shè)計(jì)要求[8-10]。HX711模塊電路如圖3所示。
圖3 HX711模塊Fig.3 HX711 module chart
該系統(tǒng)使用4段數(shù)碼管作為外圍典型器件。同時(shí),為了增強(qiáng)單片機(jī)對(duì)位選信號(hào)的驅(qū)動(dòng)能力,將P2端口(位選端)接在9012三極管(PNP型)的基極,9012三極管充當(dāng)開關(guān)的角色,同時(shí)大大提高了數(shù)碼管顯示的亮度,便于觀察輸出的數(shù)據(jù)[11]。數(shù)碼管顯示電路如圖4所示。
圖4 數(shù)碼管顯示電路Fig.4 Digital tube display circuit
該系統(tǒng)使用ZigBee技術(shù),使當(dāng)前采集到的重力值能在終端設(shè)備上顯示,極大地提高了數(shù)據(jù)的利用率,方便使用者實(shí)時(shí)、異地查看數(shù)據(jù)的正確性及穩(wěn)定性。ZigBee無線傳輸模塊電路如圖5所示。
圖5 ZigBee無線傳輸模塊電路Fig.5 ZigBee wireless transmission module circuit
在系統(tǒng)通電后,復(fù)位,主程序完成系統(tǒng)函數(shù)的初始化工作,包括系統(tǒng)變量定義和給系統(tǒng)變量賦初值等基礎(chǔ)模塊,然后調(diào)用A/D采樣函數(shù)模塊,通過控制MCU,將A/D采集模塊輸出的24位二進(jìn)制串行數(shù)據(jù)轉(zhuǎn)化為十進(jìn)制,再進(jìn)行調(diào)零和定標(biāo)的檢測(cè),分離出4位十進(jìn)制數(shù)據(jù)的千位、百位、十位和個(gè)位。最后,主程序調(diào)用數(shù)碼管顯示模塊函數(shù),將對(duì)應(yīng)的數(shù)值送到與位選相對(duì)應(yīng)的數(shù)碼管上進(jìn)行顯示。系統(tǒng)主函數(shù)流程如圖6所示。
圖6 系統(tǒng)主函數(shù)流程Fig.6 System main function flow chart
A/D采集數(shù)據(jù)函數(shù)主要采集壓電傳感器輸出的微弱電信號(hào),HX711內(nèi)部的前24個(gè)ADSK脈沖采集24位串行二進(jìn)制數(shù)據(jù),接下來的1~3個(gè)ADSK脈沖選擇下次A/D采集的通道和增益。設(shè)計(jì)采用1個(gè)ADSK脈沖,選擇通道A,增益為128。其流程如圖7所示。
圖7 A/D數(shù)據(jù)采集子函數(shù)流程Fig.7 A/D data acquisition sub-function flow chart
數(shù)碼管顯示程序是利用LED動(dòng)態(tài)顯示數(shù)據(jù)信息,依次掃描輸出數(shù)據(jù)的千位、百位、十位和個(gè)位參數(shù)。
在延時(shí)程序中對(duì)延時(shí)時(shí)間的設(shè)置要精確。設(shè)計(jì)中,千位位選、百位位選、十位位選的延時(shí)時(shí)間為100 ms。如果延時(shí)時(shí)間設(shè)置的太長(zhǎng),因?yàn)橐曈X的暫留效果,會(huì)觀察到4位數(shù)碼管從左到右依次地顯示,而非同時(shí)顯示;如果設(shè)置的太短,數(shù)碼管亮度會(huì)變暗,不便于觀察試驗(yàn)現(xiàn)象。其流程如圖8所示。
圖8 數(shù)碼管顯示子函數(shù)流程Fig.8 Sigital tube display sub-function flow chart
ZigBee無線傳輸函數(shù)利用ZigBee無線模塊設(shè)置IP地址,與相對(duì)應(yīng)的終端設(shè)備連接,形成局域網(wǎng)絡(luò),最終在終端設(shè)備上實(shí)時(shí)顯示當(dāng)前采集到的重力值。該子函數(shù)流程如圖9所示。
圖9 ZigBee無線傳輸子函數(shù)流程Fig.9 ZigBee wireless transmission sub-function flow chart
在系統(tǒng)的硬件調(diào)試過程中,首先檢查PCB板上的元器件焊接是否正確,仔細(xì)觀察有無漏焊現(xiàn)象,并用萬用表檢測(cè)PCB板是否存在短路或者斷路的現(xiàn)象。檢測(cè)后再接通電源,同時(shí)用萬用表測(cè)量電源部分的電壓值,并得到誤差。調(diào)試正常后才能接到各部分電路。
按下單片機(jī)復(fù)位按鍵將系統(tǒng)復(fù)位,調(diào)用數(shù)碼管顯示子函數(shù)顯示“1234”。在確定數(shù)碼管顯示無誤后,接上傳感器和由HX711構(gòu)成的24位串行A/D轉(zhuǎn)換的調(diào)理電路和A/D轉(zhuǎn)換電路,將全部的程序燒到MCU處理器中,觀察數(shù)碼管上是否顯示“0000”。若不是,則進(jìn)行軟件調(diào)零工作,待調(diào)零完成后,用手給傳感器慢慢施加壓力,觀察數(shù)碼管上的數(shù)值顯示是否隨著壓力的增加而加大;放手后,再觀察數(shù)碼管的顯示數(shù)值是否回到0000附近。
在進(jìn)行定標(biāo)的過程中,依次增大砝碼的質(zhì)量,盡量把砝碼放在傳感器測(cè)試端的邊沿上,使砝碼的重心在傳感器測(cè)試區(qū)的中心,這樣得出的值比較準(zhǔn)確。待數(shù)碼管顯示值穩(wěn)定后,記錄下顯示值,并用MatLab來繪制曲線。
4.2.1 未定標(biāo)時(shí)數(shù)碼管顯示值
在軟件部分的設(shè)計(jì)中,如果沒有加入清零程序,當(dāng)沒有砝碼放在傳感器上時(shí),數(shù)碼管顯示70(g)的初值。 之后輪流在托盤內(nèi)放上 10,20,40,50(g),…,記錄數(shù)碼管的示數(shù)。再通過MatLab進(jìn)行仿真,得出數(shù)碼管的顯示值和砝碼值呈線性的關(guān)系。圖10為未定標(biāo)時(shí)的線性測(cè)試曲線,其數(shù)碼管顯示值見表1。
圖10 未定標(biāo)時(shí)的線性測(cè)試曲線Fig.10 Linear test curve at unfixed standard
表1 未定標(biāo)時(shí)的數(shù)碼管顯示值Tab.1 Digital tube display value at unfixed standard
4.2.2 未定標(biāo)時(shí)數(shù)碼管顯示值
使用最小二乘法進(jìn)行擬合。最小二乘法公式為
求出 k≈0.763,b≈64.044。
最小二乘法具有嚴(yán)格的數(shù)學(xué)依據(jù),盡管計(jì)算復(fù)雜,但得到的擬合直線精密度高,即誤差小。隨后在代碼設(shè)計(jì)中加入數(shù)碼管顯示清零的程序,定標(biāo)過程就完成了。定標(biāo)后的校驗(yàn)曲線如圖11所示,定標(biāo)后數(shù)碼管的顯示值見表2。
圖11 定標(biāo)后的線性測(cè)試曲線Fig.11 Linear test curve after calibration
表2 定標(biāo)后的數(shù)碼管顯示值Tab.2 Digital tube display value after calibration
4.2.3 誤差分析
由試驗(yàn)結(jié)果可知,因?yàn)镠X 711本身的靈敏度很高,如果沒有固定好傳感器的水平位置,得出的數(shù)據(jù)會(huì)存在一定的誤差。另外,HX 711的引線也非常靈敏,即使是稍微觸動(dòng)一下,也會(huì)產(chǎn)生機(jī)械誤差。
基于ZigBee傳輸?shù)母呔葔毫刂破?,具有?shí)時(shí)性高、精確度高,便于遠(yuǎn)程查看實(shí)時(shí)數(shù)據(jù),攜帶方便和性價(jià)比高等特點(diǎn)。該系統(tǒng)既可以在實(shí)地得到高精度的重力值,也可以通過連接局域網(wǎng),通過終端設(shè)備查看實(shí)時(shí)重力值,極大地方便了數(shù)據(jù)重復(fù)利用率和提高拘束準(zhǔn)確性。特別是在確定線性度的過程中,試驗(yàn)測(cè)試數(shù)據(jù)用MatLab繪圖,可以得出數(shù)碼管的顯示值和砝碼值的關(guān)系接近為一條直線。由此,得出它們之間的線性擬合關(guān)系,最終完成定標(biāo)。
[1]姬忠勇.基于單片機(jī)的電子秤的方案設(shè)計(jì)[J].科技信息,2013,30(18):267-268.
[2]郭志勇.基于ADS1100的高精度電子秤設(shè)計(jì)與實(shí)現(xiàn)[J].安徽工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2010,27(4):385-392.
[3]孫娜.基于單片機(jī)的便攜式電子秤的設(shè)計(jì)[J].中國(guó)科技信息,2012,24(1):99-100.
[4]楊成慧,王書志,楊偉新.一種數(shù)字式電子秤的研究與設(shè)計(jì)[J].西北民族大學(xué)學(xué)報(bào):自然科學(xué)版,2012,33(3):22-27.
[5]胡美嬌,高美春.基于24位A/D轉(zhuǎn)換的高精度電子秤的設(shè)計(jì)[J].現(xiàn)代計(jì)算機(jī):專業(yè)版,2013,30(32):61-63.
[6]王鋒,徐洪垚.基于單片機(jī)控制的電子秤的設(shè)計(jì)[J].科技創(chuàng)新與應(yīng)用,2013,3(15):26-26.
[7]程智.簡(jiǎn)易電子秤的設(shè)計(jì)[J].電子世界,2013,35(7):133.
[8]蘭羽,王納林.基于儀表放大器電子秤的設(shè)計(jì)[J].信息技術(shù),2012,36(11):134-136.
[9]劉金桂,向上.小型電子秤的設(shè)計(jì)及實(shí)現(xiàn)[J].機(jī)電一體化,2012,18(7):68-70.
[10]張波,王朋亮.基于STC89C51單片機(jī)超聲波測(cè)距系統(tǒng)的設(shè)計(jì)[J].機(jī)床與液壓,2010,38(18):56-58.
[11]吳玉林,方鵬斌,嚴(yán)黎華.簡(jiǎn)易數(shù)字電子秤的設(shè)計(jì)[J].咸寧學(xué)院學(xué)報(bào),2010,30(12):11-12.