一個簡單嵌入式開發的軌跡--電子秤

電子秤介紹

電子秤,屬於衡器的一種,是利用胡可定律或者力的槓桿平衡原理測定物體質量的工具。電子秤主要由稱重系統(如秤盤、秤體)、傳力轉換系統(如槓桿傳力系統,傳感器)和示值系統(如刻度盤、電子顯示儀表)三部分組成。
當物體放到秤盤上,壓力施給傳感器,從而使傳感器的彈性體(彈性元件,敏感樑)發生形變。設有一帶有肓孔的長方體懸樑臂。肓孔底部中心是承受純剪應力,但其上下部分會出現壓縮和拉伸的應力,主應力一方爲拉伸,一方爲壓縮。在此處貼上的電阻應變片會隨着彈性體一同發生形變,由電子應變片構成的橋電路在激勵電壓的作用下輸出的反饋電壓發生變化,產生一個與所受壓力相關的模擬信號。
該信號經過放大電路輸出到模數轉換器並轉化成可供量化的AD值。MCU從A/D轉化芯片中讀取出A/D值進行計算轉化爲質量,可供顯示或者上傳遠端服務器。Visio示意圖

HX711+HL-8原理說明

HX711是一款專爲高精度電子秤而設計的24位A/D轉換芯片,與通類型其他芯片相比,該芯片繼承了包括穩壓源和片內時鐘震盪等其他同類型芯片所需要的外圍電路。片內穩壓電路可直接向外部傳感器和芯片內A/D轉換器提供電源 ,系統板上無需另外的模擬電源。
具有兩路可選擇差分輸入A和B,片內低噪聲可編程放大器,可選增益爲32,64和128。芯片與後端的MCU芯片的接口和編程簡單,所有控制信號由管腳驅動,無需對芯片內部寄存器編程。
HL-8爲懸樑式電阻應變片壓力傳感器,在其肓孔兩端貼有電阻應變片,其懸臂在收到向下的壓力的時候電阻應變片發生形變,阻值發生變化從而輸出反饋電壓發生變化,將懸臂所受的壓力轉化爲電壓數據。其滿量程的輸出電壓=激勵電壓*靈敏度
在這裏插入圖片描述

嵌入式驅動軟件

1、MCU定期讀取HX711的AD值,通信方面的時序實現參考廠家提供的驅動程序,在產品HX711中文資料中提供了彙編與51的源碼說明,下面附一下相應的註釋僞碼。

//IO口初始化
void HX711PinInit(void)
{
	//HX711_SCK推輓輸出
	//HX711_DOUT輸入上拉
}
//讀取AD值,因爲我們的壓力傳感器採用的是5kg,最大輸入電壓爲5mv,所以選擇128的增益實現。
unsigned int HX711ReadAd(void)	
{
  	HX711_SCK=0; //時鐘引腳爲低

	while(HX711_DOUT); //等待內部轉化完成
    for(i=0;i<24;i++)//讀取24位數據
	{ 
	  	HX711_SCK=1;//時鐘拉高 
	  	count=count<<1;//移位
		HX711_SCK=0; //時鐘拉低
	    if(HX711_DOUT)//讀取數據腳
	    {
			count++;//賦值
		} 
	} 
 	HX711_SCK=1; 
  	count=(count^0x800000);//24位帶極性的ad轉化,最高位爲符號位,異或的作用將-20mv~+20mv的變化範圍對應到000000--FFFFFF,後邊計算去毛皮重量計算方便。
	HX711_SCK=0;  //空給一個脈衝,將下一次的增益設置爲128,芯片上電默認也爲128,所以不用上電空配置一次
	return(count);
}

2、由AD值轉化爲物體重量的公式。

  1. 激勵電壓:VAVDD=VBG(R12+R13)/R2=4.3V
  2. 壓力傳感器滿量程輸出電壓:4.3v*1.0mv/v=4.3mv
  3. 1g對應AD值:((4.3/20)*2^23)/5000=360
    毛皮的重量爲上電默認讀取的AD值。物品的重量=稱重的重量-毛皮的重量。
unsigned GetWeight(void)
{
	unsigned int Weight = 0;
	unsigned int Weight_MaoPi =0;
	unsigned int Weight_ShiWu =0;
	
	Weight_Maopi = 0x00800008;//此值應爲上電默認讀取的數值。此處用一模擬數據代替
	Weight = HX711_Read();
	if(Weight > Weight_Maopi)			
	{
		Weight_Shiwu = Weight - Weight_Maopi;
		Weight_Shiwu = (s32)((float)Weight_Shiwu/360); //360這個參數爲AD/g。	
		sWeight = Weight_Shiwu;
	}
	return Weight_Shiwu;
}

360這個參數只是個理論值。實際上在開發的過程中大部分都繞過了原理計算的步驟,直接根據線性相關,在量程內取兩個點做樣本解二元一次方程得到AD值與重量之間的關係。
雖然重量與AD值之間的關係在量程範圍內成線性相關,但是元器件的差異以及傳感器受力情況的差異,導致產品需要在出廠的時候對AD值與重力之間的關係進行微調,而調整的方式方法也需要在生產高效高通過率的大環境下進行開發,包括配套的調整軟件甚至對應的工裝。

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