稱重傳感器的應用(HX711)

HX711模塊原理圖

基本原理講解 
1. 100kg 傳感器 
滿量程輸出電壓=激勵電壓*靈敏度2.0mv/v 
例如:供電電壓是5v 乘以靈敏度2.0mv/v=滿量程10mv。 
相當於有100Kg 重力產生時候產生10mV 的電壓。 
2. 711模塊對產生的10mV 電壓進行採樣。 
概述:711模塊 A 通道帶有128倍信號增益,可以將10mV 的電壓放大128倍,然 
後採樣輸出24bit AD 轉換的值,單片機通過指定時序將24bit 數據讀出。 
詳細講解程序計算原理: 
小強電子設計 
步驟1 :如何計算傳感器供電電壓 
HX711可以在產生 VAVDD 和 AGND 電壓,即711模塊上的 E+和 E-電壓。 
該電壓通過 VAVDD=VBG(R1 +R2 )/R2計算。 
VBG 爲模塊兒基準電壓1.25v 
R1 = 20K,R2 = 8.2K 
因此得出 VAVDD = 4.3V 
(爲了降低功耗,該電壓只在採樣時刻纔有輸出, 因此用萬用表讀取的值可能低 
於4.3v,因爲萬用表測量的是有效值。 ) 
步驟2 :如何計算 AD  輸出最大值 
在4.3V 的供電電壓下100Kg 的傳感器最大輸出電壓是4.3v*2mv/V = 8.6mV 
經過128倍放大後,最大電壓爲8.6mV*128 = 1100.8mV 
經過 AD 轉換後輸出的24bit 數字值最大爲: 
1100.8mV*(2^24) /4.3V ≈ 4294967 
步驟3 :程序中數據如何轉換 
小強電子設計 
程序中通過 
HX711_Buffer = HX711_Read(); 
獲取當前採樣的 AD 值,最大4294967,存放在 long 型變量 HX711_Buffer 中, 
因 long 型變量計算速率和存放空間佔用資源太多,固除以100,縮放爲 int 型, 
便於後續計算。 
Weight_Shiwu = HX711_Buffer/100; 
Weight_Shiwu 最大爲42949。 
步驟4 :如何將 AD  值反向轉換爲重力值 。 
假設重力爲 A Kg, (x<100Kg),測量出來的 AD 值爲 y 
100Kg 傳感器輸出,發送給 AD 模塊兒的電壓爲 A Kg * 8.6mV / 100Kg = 0.086A mV 
經過128倍增益後爲 128 * 0.086A = 11.008AmV 
轉換爲24bit 數字信號爲 11.008A mV * 2^24  /4.3V = 42949.67296A 
所以 y = 429496.7296A /100 = 429.4967296 A 
因此得出 A = y / 429.4967296 Kg  
特別注意:  
因爲不同的傳感器斜率特性曲線不一樣,因此,每一個傳感器需要軟件校正調零。 
每個傳感器都要校準。
 

驅動程序:


unsigned long ReadCount(void)

{

    unsigned long Count;

    unsigned char i;

 

    SCL=0;      //使能AD(PD_SCL 置低)

    Count=0;

    while(SDA); //AD轉換未結束則等待,否則開始讀取

    for (i = 0; i < 24; i++)

    {

        SCL = 1;        //PD_SCL 置高(發送脈衝)

        Count=Count<<1; //下降沿來時變量Count左移一位,右側補零

        SCL=0;          //PD_SCL 置低

        if(SDA) Count++;

    }

    SCL=1;

    Count=Count^0x800000;//第25個脈衝下降沿來時,轉換數據

    SCL=0;

    return(Count);

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章