日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

单片机称重系统设计

發(fā)布時間:2023/12/20 windows 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单片机称重系统设计 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.傳感器簡介

? ? 稱重系統(tǒng)在工業(yè)級日常生活中應(yīng)用非常廣泛,從小型的電子稱到大型的地磅。其中傳感器大部分為電阻應(yīng)變式壓力傳感器。一般由四個電阻應(yīng)變片組成惠更斯電橋,安裝在彈性體上。當(dāng)有壓力時,應(yīng)變片隨彈性體發(fā)生形變,電阻產(chǎn)生變化,電橋產(chǎn)生不平衡電壓。一般壓力與電橋不平衡電壓成線性比例關(guān)系。

?????? 傳感器的輸出電壓一般比較小,為mV級別。具體取決于激勵電壓和傳感器靈敏度。常見的靈敏度有1mV/V、2mV/V、3mV/V。對于2mV/V的傳感器,在激勵電壓為5V時,滿量程時輸出電壓為2mV/V*5V=10mV。

2.硬件設(shè)計

? ? 傳感器信號比較小,需要放大后再進行AD采集。目前有很多稱重系統(tǒng)專用的AD芯片,內(nèi)部集成了放大器,大大簡化了硬件電路的設(shè)計。如TI的ADS1231,芯海科技的CS1231、海芯科技的HX710等。這些芯片都是24位AD,且集成了128倍的放大器(部分芯片放大倍數(shù)可設(shè)置)。本文以HX710為例進行介紹。其電路圖如下:

? ? 查詢手冊可以看到芯片5V供電時的性能要優(yōu)于3V供電。但需要注意的是HX710的AVDD不能大于DVDD,而目前大部分單片機為3.3V供電,所以這里都用3.3V供電。ADS1231是沒有這個限制的,即DVDD可以是3.3V,AVDD可以是5V。

? ? 芯片共模輸入電壓范圍為AGND+0.9V到AVDD-1.3V,這一點在其它應(yīng)用時需要注意。

? ? 芯片差分輸入電壓范圍為±0.5VREF/放大倍數(shù)(128)≈±12.89mV。對于3.3V激勵電壓,2mV/V靈敏度的傳感器,最大輸出電壓為±6.6mV,在芯片要求范圍內(nèi)。兩個值相差近一倍,會損失約1位的分辨率。激勵電壓越大,傳感器輸出電壓越接近AD的輸入范圍,AD的分辨率就越能得到有效利用。但也要綜合考慮整個電源系統(tǒng)的設(shè)計。

? ? 另外,傳感器的激勵電壓盡量與芯片的VREF采用同一個電源,這樣可以抑制一些共模干擾。

3.軟件設(shè)計

? ? 芯片與單片機接口簡單,一個數(shù)據(jù)輸出引腳DOUT,一個時鐘引腳SCK。

? ? 當(dāng)AD一次轉(zhuǎn)換完成后,DOUT由高電平變?yōu)榈碗娖?#xff0c;此時SCK引腳輸入25~27個不等的時鐘脈沖,每個時鐘的上升沿從DOUT讀取數(shù)據(jù)。時序圖如下。其它芯片的讀取數(shù)據(jù)時序與此芯片基本相同。

程序編寫

int32_t ad_val=0;//AD值void Get_HX710() {HX710_SCLK_CLR;if(READ_HX710_DOUT_PIN)return ;for(i=0;i<24;i++){HX710_SCLK_SET;ad_val=ad_val<<1;HX710_SCLK_CLR;if(READ_HX710_DOUT_PIN)ad_val++;}HX710_SCLK_SET;if(ad_val&0x800000)ad_val|=0xFF000000;HX710_SCLK_CLR; }

傳感器校準(zhǔn)

? ? 上面讀取的是AD原始值,轉(zhuǎn)換成重量前需要對傳感器進行校準(zhǔn)。一般傳感器校準(zhǔn)至少需要兩個點:零點和任滿量程(當(dāng)然,其它任意兩個點也可以,因為兩點確定一條直線)。對于一些要求高的場合,則需要多個點進行分段校準(zhǔn),甚至不同溫度區(qū)間進行校準(zhǔn)。本文以兩個點的校準(zhǔn)為例。校準(zhǔn)數(shù)據(jù)包括零點校準(zhǔn)值、零點AD值、滿量程校準(zhǔn)值、滿量程AD值。

? ? 計算稱重值比較簡單,即在通過兩個校準(zhǔn)點確定一條直線,找到該曲線上AD值對應(yīng)的重量。程序如下:

int32_t CaliADCValue[2];//校準(zhǔn)的AD值 int32_t CaliSensorValue[2];//校準(zhǔn)的傳感器值 int32_t ZeroValue;//去皮AD值void CalcWeight(int32_t AD_Value) {int32_t Sensor_Value = 0;int32_t TempCaliADCValue[2];//校準(zhǔn)AD值??????TempCaliADCValue[0] = CaliADCValue[0] + ZeroValue;TempCaliADCValue[1] = CaliADCValue[1] + ZeroValue;//去皮if(AD_Value < TempCaliADCValue[0])//小于0點值{Sensor_Value = 0;}else if(AD_Value > TempCaliADCValue[1])//大于最大校準(zhǔn)值{Sensor_Value = CaliSensorValue[1] + (float)(AD_Value - TempCaliADCValue[1])/(float)(TempCaliADCValue[1] - TempCaliADCValue[0]) * (float)(CaliSensorValue[1] - CaliSensorValue[0]);}else//在校準(zhǔn)范圍內(nèi){Sensor_Value = CaliSensorValue[0] + (float)(AD_Value - TempCaliADCValue[0])/(float)(TempCaliADCValue[1] - TempCaliADCValue[0]) * (float)(CaliSensorValue[1] - CaliSensorValue[0]);} }

? ? 稱重系統(tǒng)的一個重要功能就是去皮。上面程序中包括了去皮的功能,去皮即在原來校準(zhǔn)AD值的基礎(chǔ)上加上去皮AD值,作為新的校準(zhǔn)AD值去計算。

? ? AD去皮值=當(dāng)前AD值-零點校準(zhǔn)AD值。

ZeroValue = ad_val - CaliADCValue[0];

?

本文介紹的只是一種常見的稱重系統(tǒng)設(shè)計方案。在一些要求高的場合,可能需要對傳感器進行蠕變補償,采用交流激勵等方式。

?

歡迎關(guān)注公眾號"嵌入式技術(shù)開發(fā)",大家可以后臺給我留言溝通交流。如果覺得該公眾號對你有所幫助,也歡迎推薦分享給其他人。

總結(jié)

以上是生活随笔為你收集整理的单片机称重系统设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。