摘要:本文在分析數(shù)字萬用表結(jié)構(gòu)基礎(chǔ)上,結(jié)合HX711的A/D特性,給出電壓、電阻測量電路的硬件設(shè)計方案;利用STM32F103C8T6,在MDK4.73開發(fā)環(huán)境下,用C語言實現(xiàn)HX711數(shù)據(jù)的獲取及處理,完成基于HX711的精密萬用表設(shè)計。
關(guān)鍵詞:HX711;通態(tài)電阻;固件庫
萬用表是一種測量電流、電壓及電阻等多種電學(xué)參量的儀表。自上世紀(jì)80年代,MAXIM公司推出3位半萬用表專用芯片ICL7106/7107后,指針式萬用表被數(shù)字式萬用表逐步取代,數(shù)字式萬用表以靈敏度高、精確度高、顯示清晰、過載能力強等特點被普及。
數(shù)字式萬用表核心部分由A/D(模擬/數(shù)字)轉(zhuǎn)換芯片、外圍元件、液晶顯示器構(gòu)成。在測量不同電學(xué)參量時,通過外圍元件將電學(xué)參量變成適合的電壓傳遞A/D轉(zhuǎn)換芯片,A/D轉(zhuǎn)換芯片將電壓變成數(shù)值,最后通過液晶顯示器顯示,A/D轉(zhuǎn)換是數(shù)字式萬用表的核心。
HX711是一款專為高精度電子秤而設(shè)計的24位A/D轉(zhuǎn)換器芯片。與同類型其它芯片相比,該芯片集成了包括穩(wěn)壓電源、片內(nèi)時鐘振蕩器等其它同類型芯片所需要的外圍電路,具有集成度高、響應(yīng)速度快、抗干擾性強等優(yōu)點[1]。雖然HX711是一款專為電子秤而設(shè)計A/D芯片,利用其24位A/D,添加外圍電路,結(jié)合MCU完全可以設(shè)計出智能、精密的數(shù)字萬用表。
1、系統(tǒng)硬件設(shè)計
基于HX711的精密萬用表屬于實驗性質(zhì)的萬用表,適合面向弱電方向的人員使用,只實現(xiàn)了直流電壓、電阻兩個電氣參數(shù)的測量功能。
1.1 電壓測量電路的硬件設(shè)計
電壓測量部分有10V、1V、0.1V三個量程。HX711有兩個A/D采集端口,共3種測量方式,采用通道A 128分貝方式,可以測量正、負(fù)20mv范圍內(nèi)的電壓值??紤]到HX711的零漂等因素,最大值設(shè)定為正、負(fù)10mv。
根據(jù)歐姆定律可以方便設(shè)計出電壓測量電路,電壓測量電路由R1、R2、R3三個電阻串聯(lián),待測電壓流過這三個電阻。
R1阻值為三個電阻總阻值的百分之一,10V以下電壓流過三個電阻時,R1兩端的電壓就是總電壓的百分之一,即10mv,所以,10V量程時,測量R1兩端電壓。
R1、R2阻值為三個電阻總阻值的十分之一,1V以下電壓流過三個電阻時,R1、R2兩端的電壓就是總電壓的十分之一,即10mv,1V量程時,測量R1、R2兩端電壓。0.1V以下量程時,直接測量R1至R3間的電壓。
由于電阻的標(biāo)稱是不連續(xù)的,R1阻值選擇1K,R2由3.9K和5.1K兩個電阻組成,R3選擇39K和51K兩個電阻組成。
1.2 量程切換電路的硬件設(shè)計
萬用表多采用多檔位的旋轉(zhuǎn)開關(guān),來實現(xiàn)選擇測量項目和量程切換。本設(shè)計采用電子開關(guān)CD4066來實現(xiàn)量程自動切換,CD4066由四個雙向電子開關(guān)構(gòu)成,每個雙向電子開關(guān)的控制端施加高電平,開關(guān)導(dǎo)通;施加低電平,開關(guān)呈高組態(tài)。
R1經(jīng)過項目切換開關(guān)接HX711負(fù)極測量端、其他三處測量點經(jīng)過電子開關(guān)合并后,再經(jīng)過項目切換開關(guān)接HX711正極測量端。測量表筆接最終經(jīng)過項目切換開關(guān)接到R1、R3兩端。
1.3 電阻測量電路的硬件設(shè)計
電路由Rx和Rn串聯(lián)接3.3V構(gòu)成,Rn阻值已知,Rx為待測電阻,用HX711測量Rx兩端電壓,總電壓3.3V減去測量值即為Rn兩端電壓,計算可知Rx阻值。
在測量Rx兩端電壓時,為簡化電路和編程,仍采用通道A 128分貝方式,人為設(shè)定滿量程電壓為16.5mV,設(shè)定Rx量程為10、100、1k、10k歐姆四個量程,對應(yīng)Rn理論取值為2k、20k、200k、2M歐姆。由2k、18k、180k、1800k四個電阻串聯(lián)。量程為10歐姆時,由CD4066將3.3V加到2k電阻上;量程為100歐姆時,由CD4066將3.3V加到18k電阻上。
CD4066具體型號為tc4066bp,它在5V電壓下,25度時通態(tài)電阻典型值為290歐姆。筆者測量在3.3V電壓下,為292歐姆,實踐阻值還應(yīng)加上292。
1.4 其他電路設(shè)計
測量項目切換選擇四刀三置開關(guān),四個開關(guān)引腳,三個腳分配給某測量項目,一個引腳接地,選擇不同測量項目時,同接上拉電阻的MCU某引腳連接,使其由1變0,通知MCU切換測量項目。測量電路和STM32F103C8T6共用電源3.3V。
2、軟件設(shè)計
基于HX711的精密萬用表,MCU采用32位的STM32F103C8T6,開發(fā)環(huán)境選擇MDK4.73,固件庫為V3.5.0。
DATA、CLK為HX711的數(shù)據(jù)、時鐘引腳,DATA引腳選擇GPIO_Mode_IN_FLOATING模式,CLK引腳選擇PIO_Mode_Out_PP模式。讀取HX711數(shù)據(jù)程序過程如下:
定義u32變量val、unsigned char變量i,初值為0;GPIO_SetBits設(shè)置DATA為1,GPIO_ResetBits 設(shè)置CLK為0;GPIO_ReadInputDataBit讀DATA值,作為while的退出條件。以i為變量,循環(huán)24次執(zhí)行:CLK置1,val左移1位,CLK置0;GPIO_ReadInputDataBit讀DATA值,作if條件;為1時,val加一。CLK置1,CLK置0。數(shù)據(jù)由val返回。
讀取HX711數(shù)據(jù),依據(jù)測量項目進行處理,后數(shù)據(jù)在液晶模塊上顯示,最后根所選擇的HX711輸出速率進行延時,完成一次數(shù)據(jù)采集、處理。因采取C語言實現(xiàn),可方便移植到其他MCU上。
利用HX711的24位A/D轉(zhuǎn)換性能,通過電子開關(guān)CD4066進行量程切換,在STM32F103C8T6的控制下,實現(xiàn)自動切換量程的精密數(shù)字萬用表,實現(xiàn)電壓、電阻兩個電氣參數(shù)的測量,精密、量程自動切換是本設(shè)計的優(yōu)點,可以在此基礎(chǔ)上輕松實現(xiàn)其他電氣參數(shù)的測量。
參考文獻:
[1]HX711 datasheet [Z]. http://www.aviaic.com,2018年.P1.
作者簡介:劉景文(1968-)男,天津市人,天津濱海職業(yè)學(xué)院電子信息工程技術(shù)教研室主任,副教授,碩士。研究領(lǐng)域:嵌入式應(yīng)用、計算機視覺。