<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > LabVIEW Arduino電子稱(chēng)重系統(項目篇—1)

LabVIEW Arduino電子稱(chēng)重系統(項目篇—1)

發(fā)布人:美男子玩編程 時(shí)間:2022-07-29 來(lái)源:工程師 發(fā)布文章

1


項目概述


質(zhì)量是物理學(xué)中的7個(gè)基本量綱之一。在工業(yè)生產(chǎn)和日常生活中,我們都需要獲取一個(gè)物體的質(zhì)量,比如購買(mǎi)某件商品時(shí),需要確定其質(zhì)量大小,或者以質(zhì)量作為中間量以進(jìn)一步獲得物體的其他參數,如質(zhì)心、偏心等。


稱(chēng)重傳感器實(shí)際上是一種將質(zhì)量信號轉變?yōu)榭蓽y量的電信號輸出的裝置。按照轉換方法的不同,稱(chēng)重傳感器分為光電式、液壓式、電磁力式、電容式、磁極變形式、振動(dòng)式、陀螺儀式、電阻應變式8類(lèi),其中,電阻應變式的使用最為廣泛。


電阻應變式稱(chēng)重傳感器的工作原理:彈性體(彈性元件、敏感梁)在外力作用下產(chǎn)生彈性變形,使粘貼在它表面的電阻應變片(轉換元件)也隨同產(chǎn)生變形,電阻應變片變形后,它的阻值將發(fā)生變化(增大或減?。?,再經(jīng)相應的測量電路把這一電阻變化轉換為電信號(電壓或電流),從而完成將外力變換為電信號的過(guò)程。


由此可見(jiàn),電阻應變片、彈性體和檢測電路是電阻應變式稱(chēng)重傳感器中不可缺少的組成部分,下面簡(jiǎn)述這三者的作用。


  • 電阻應變片

電阻應變片是把一根電阻絲均勻地分布在一塊有機材料制成的基底上,即成為一片應變片,其最重要的參數是靈敏系數K。


需要說(shuō)明的是:靈敏度系數K值的大小是由制作金屬電阻絲材料的性質(zhì)決定的一個(gè)常數,它和應變片的形狀、尺寸大小無(wú)關(guān),不同的材料的K值一般在1.7~3.6。其次K值是一個(gè)無(wú)因次量,即它沒(méi)有量綱。


圖片


  • 彈性體

彈性體是一個(gè)有特殊形狀的結構件,有兩個(gè)功能,首先是它承受稱(chēng)重傳感器所受的外力,對外力產(chǎn)生反作用力,達到相對靜平衡。其次,它要產(chǎn)生一個(gè)高品質(zhì)的應變場(chǎng)(區),使粘貼在此區的電阻應變片比較理想地完成機械形變至電信號的轉換。

需要說(shuō)明的是,上面分析的應力狀態(tài)均是“局部"情況,而應變片實(shí)際感受的是“平均"狀態(tài)。


  • 檢測電路

檢測電路的功能是把電阻應變片的電阻變化轉變?yōu)殡妷狠敵?。因為惠斯登電橋具有很多?yōu)點(diǎn),如可以抑制溫度變化的影響,可以抑制側向力干擾,可以比較方便地解決稱(chēng)重傳感器的補償問(wèn)題等,所以惠斯登電橋在稱(chēng)重傳感器中得到了廣泛的應用。因為全橋式等臂電橋的靈敏度最高,各臂參數一致,各種干擾的影響容易相互抵消,所以稱(chēng)重傳感器均采用全橋式等臂電橋。


稱(chēng)重傳感器的出線(xiàn)方式有4線(xiàn)和6線(xiàn)兩種,模塊或稱(chēng)重變送器的接線(xiàn)也有4線(xiàn)和6線(xiàn)兩種,接線(xiàn)原則是:傳感器能接6線(xiàn)的不接4線(xiàn),必須接4線(xiàn)的就要進(jìn)行短接。

一般的稱(chēng)重傳感器都是六線(xiàn)制的,當接成四線(xiàn)制時(shí),電源線(xiàn)(EXC-,EXC+)與反饋線(xiàn)(SEN-,SEN+)就分別短接了。SEN+和SEN-是補償線(xiàn)路電阻用的,SEN+和EXC+是通路的,SEN-和EXC-是通路的。EXC+和EXC-是給稱(chēng)重傳感器供電的,但是由于稱(chēng)重模塊和傳感器之間的線(xiàn)路損耗,實(shí)際上傳感器接收到的電壓會(huì )小于供電電壓。


每個(gè)稱(chēng)重傳感器都有一個(gè)mV/V的特性,它輸出的mV信號與接收到的電壓密切相關(guān),SENS+和SENS-實(shí)際上是稱(chēng)重傳感器內的一個(gè)高阻抗回路,可以將稱(chēng)重模塊實(shí)際接收到的電壓反饋給稱(chēng)重模塊。在稱(chēng)重傳感器上將EXC+與SENS+短接,EXC-與SENS-短接,僅限于傳感器與稱(chēng)重模塊距離較近,電壓損耗非常小的場(chǎng)合,否則測量存在誤差。稱(chēng)重傳感器實(shí)物如下圖所示:


圖片



2


項目架構


本篇博文將介紹使用應變式稱(chēng)重傳感器、HX711模塊、Arduino Uno和LabVIEW組成上下位機小量程電子稱(chēng)重系統,系統框圖如下圖所示:


圖片

項目架構


Arduino Uno作為下位機,負責HX711的讀寫(xiě)以及數據傳輸,LabVIEW編寫(xiě)的顯示軟件作為上位機,上下位機利用USB-TTL接口實(shí)現通信。另外,還可以通過(guò)此系統對未知傳感器進(jìn)行標定,以修正誤差,提高測量精度。


HX711是一款專(zhuān)為高精度稱(chēng)重傳感器而設計的24位A/D轉換器芯片。與同類(lèi)型其他芯片相比,該芯片集成了包括穩壓電源、片內時(shí)鐘振蕩器等其他同類(lèi)型芯片所需要的外圍電路,具有集成度高、響應速度快、抗干擾性強等優(yōu)點(diǎn)。


HX711降低了電子稱(chēng)重的整機成本,提高了整機的性能和可靠性。該芯片與后端MCU芯片的接口和編程非常簡(jiǎn)單,所有控制信號由管腳驅動(dòng),無(wú)需對芯片內部的寄存器編程。輸入選擇開(kāi)關(guān)可任意選取通道A或通道B,與其內部的低噪聲可編程放大器相連。


圖片



3


硬件環(huán)境


將HX711模塊的VCC、GND、SCK和DOUT分別接至Arduino Uno控制器的5V、GND、D9和D10;并將HX711模塊的E+、E-、A+和A-分別接稱(chēng)重傳感器的激勵電壓正、負,輸出電壓正、負(具體接線(xiàn)請查閱所使用的傳感器接線(xiàn)說(shuō)明),最后將HX711模塊的B+和B-接GND。


為了減少干擾信號,HX711高精度A/D模塊與電阻式稱(chēng)重傳感器之間的連接線(xiàn)應盡量短,過(guò)長(cháng)的話(huà)會(huì )受到干擾,HX711高精度A/D模塊與Arduino Uno控制器之間的連接線(xiàn)也應該盡量短。若一定需要延長(cháng)線(xiàn),則最好使用帶電磁屏蔽的電纜線(xiàn)。效果如下圖所示:


圖片



4


Arduino功能設計


Arduino下位機部分需要完成以下功能:讀取和傳輸稱(chēng)重傳感器的輸出信號,Arduino Uno控制板通過(guò)USB-TTL電纜接收上位機發(fā)來(lái)的命令,完成稱(chēng)重傳感器的數據讀取之后,并將數據回傳至LabVIEW上位機軟件。HX711模塊主要完成輸出信號的高精度A/D轉換和給稱(chēng)重傳感器提供激勵電源。


另外,還需要查看具體傳感器的靈敏度,以計算滿(mǎn)量程電壓和增益倍數。滿(mǎn)量程電壓的計算公式為︰滿(mǎn)量程輸出電壓=激勵電壓×靈敏度。以靈敏度1.0mV/V為例,假設供電電壓為5V,則滿(mǎn)量程電壓為5mV。


通過(guò)實(shí)際測量,HX711高精度A/D模塊輸出的供電電壓為4V左右,則傳感器滿(mǎn)量程電壓為4mV。由于HX711高精度A/D模塊增益倍數為128或64對應的滿(mǎn)量程差分輸入電壓分別為±20mV或±40mV。為了獲得更高的精度,選擇增益倍數為128倍。


Arduino Uno控制器負責讀取LabVIEW上位機發(fā)來(lái)的質(zhì)量測量命令,并通過(guò)HX71獲取稱(chēng)重傳感器輸出的電壓值,通過(guò)串口發(fā)送回上位機LabVIEW軟件。Arduino Uno控制器的程序代碼如代碼如下所示:


















































#include <HX711.h>HX711 hx(9, 10,128);#define HX711_COMMAND  0x10   //采集命令字 byte comdata[3]={0};      //定義數組數據,存放串口接收數據 void receive_data(void);      //接受串口數據void test_do_data(void);         //測試串口數據是否正確,并更新數據double sum = 0; void setup(){  Serial.begin(9600);       }void loop(){  while (Serial.available() > 0)   //不斷檢測串口是否有數據   {        receive_data();            //接受串口數據        test_do_data();               //測試數據是否正確并更新標志位   }}void receive_data(void)       {   int i ;   for(i=0;i<3;i++)   {      comdata[i] =Serial.read();      //延時(shí)一會(huì ),讓串口緩存準備好下一個(gè)字節,不延時(shí)可能會(huì )導致數據丟失,       delay(2);   }} void test_do_data(void){  if(comdata[0] == 0x55)            //0x55和0xAA均為判斷是否為有效命令   {     if(comdata[1] == 0xAA)     {        if(comdata[2] == HX711_COMMAND)        {                        for (int i = 0; i < 10; i++){                sum += hx.read();}            Serial.println(sum/10,2);                  }      }   }}



5


LabVIEW功能設計


LabVIEW上位機部分需要完成以下功能:

1、向下位機Arduino控制器發(fā)送電壓采集命令,Arduino控制器通過(guò)串口接收上位機命令,完成相應的數據采集之后并將采集的數據回傳,LabVIEW軟件將回傳的數據轉換為質(zhì)量并顯示在前面板上。

2、通過(guò)使用標準砝碼對稱(chēng)重系統進(jìn)行標定,以獲得稱(chēng)重傳感器的輸出電壓與質(zhì)量的關(guān)系,從而擬合出傳感器的輸出電壓與質(zhì)量的標定系數,用于將傳感器的輸出電壓換算為所稱(chēng)量的質(zhì)量,而且通過(guò)精確的砝碼對稱(chēng)重系統進(jìn)行多次標定,有利于提高整個(gè)稱(chēng)重系統的測量精度。


5.1、前面板設計


LabVIEW前面板分為稱(chēng)重和標定兩個(gè)部分,稱(chēng)重部分主要有讀取標定系數、單次稱(chēng)重、多次稱(chēng)重取平均值。標定部分主要有5階正反行程的標定、計算擬合系數和保存擬合系數。同時(shí),在標定部分設有一個(gè)超時(shí)測量電壓的顯示框,以實(shí)時(shí)地顯示當前稱(chēng)重傳感器輸出信號值的變化情況。小量程電子稱(chēng)重系統的LabVIEW上位機前面板,如下圖所示:


圖片


5.2、程序框圖設計


由于在LabVIEW上位機的程序設計中需要多次調用電壓采集子程序,以向ArduinoUno控制器發(fā)送命令碼,并獲取Arduino Uno控制器返回的測量數據,所以將電壓采集子程序設計成子Vl,不僅可以簡(jiǎn)化程序設計,還便于調用。


電壓采集子程序的前面板和程序框圖,如下圖所示:


圖片圖片


LabVIEW上位機主程序的結構為順序結構+While循環(huán)+事件結構。首先,在順序結構中的第一幀中,對所使用的數組、中間變量和顯示控件進(jìn)行初始化,在順序結構的第二幀中,通過(guò)設置的串口號來(lái)初始化串口通信。然后,程序進(jìn)入While循環(huán)和事件結構,不斷地檢測是否有事件得到響應,并執行,事件結構有"測量_稱(chēng)重”、“測量_讀取標定系數”"、“測量_計算平均值"、“標定_采集"、“標定_擬合"、“標定_保存"和“超時(shí)”。最后,關(guān)閉串口通信。

初始化程序框圖如下圖所示:


圖片


在“測量_稱(chēng)重"事件結構中,通過(guò)“采集子程序"讀取Arduino Uno控制器返回的數據,并利用標定系數計算得到所稱(chēng)量的重量,同時(shí)利用稱(chēng)重計數器將重量數據循環(huán)顯示在測量數據中?!皽y量_稱(chēng)重"值改變事件程序框圖如下圖所示:


圖片


在“測量_讀取標定系數"事件結構中,通過(guò)“文件對話(huà)框"的選擇來(lái)讀取稱(chēng)重傳感器的標定系數,以用于計算所稱(chēng)量的重量,同時(shí)顯示當前標定系數,以表示當前所使用的標定系數,進(jìn)一步擴大了電子稱(chēng)重系統的適用范圍,可以通過(guò)配置不同量程的稱(chēng)重傳感器來(lái)實(shí)現不同范圍的稱(chēng)重需求?!皽y量_讀取標定系數"值改變事件程序框圖如下圖所示:


圖片


在"測量_計算平均值"事件結構中,通過(guò)對測量數據數組的5個(gè)元素累加并除以5,得到所稱(chēng)量的重量,這種通過(guò)多次測量取平均值的方法可以提高稱(chēng)重精度,滿(mǎn)足較高精度的稱(chēng)重需求?!皽y量_計算平均值"值改變事件程序框圖如下圖所示:


圖片


在“標定_采集"事件結構中,通過(guò)“采集子程序"讀取Arduino Uno控制器返回的稱(chēng)重傳感器輸出的電壓信號,并利用標定計數器和條件結構將所采集到的數據依次顯示在正行程和反行程上?!皹硕╛采集"值改變事件程序框圖如下圖所示:


圖片


在“標定_擬合"事件結構中,通過(guò)將正行程和反行程數組中的電壓數據求平均值,與質(zhì)量標準值數組利用線(xiàn)性擬合函數計算出擬合系數,并顯示在標定系數上?!皹硕╛擬合”值改變事件程序框圖如下圖所示:


圖片


在“標定_保存"事件結構中,通過(guò)“文件對話(huà)框"來(lái)選擇標定系數的保存路徑,并檢查是否存在相同文件名的文件,如存在則提醒是否替換文件,然后將標定系數以配置文件的格式保存,后綴名為".ini"?!皹硕╛保存"值改變事件程序框圖如下圖所示:


圖片


當2秒內無(wú)事件被觸發(fā),則事件結構進(jìn)入“超時(shí)"分支。在“超時(shí)"事件結構中,通過(guò)“采集子程序"讀取Arduino Uno控制器返回的稱(chēng)重傳感器輸出信號,并將其顯示為前面板上的當前電壓值?!俺瑫r(shí)"事件結構如下圖所示:


圖片


除了傳感器的非線(xiàn)性之外,電阻應變式稱(chēng)重傳感器溫度漂移的偏差值也不容忽視,可以在系統中加入溫度傳感器(例如DS18B20),并在計算重量時(shí)進(jìn)行線(xiàn)性溫度漂移修正。


另外,選擇較高精度的稱(chēng)重傳感器,還可以利用此小量程電子稱(chēng)重系統實(shí)現物體的質(zhì)量質(zhì)心的測量,例如,固體火箭發(fā)動(dòng)機的質(zhì)量質(zhì)心測量系統。


*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。



關(guān)鍵詞: LabVIEW

相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>