力傳感器之電子枰的制作
人類認識和研究力的歷史很長,但 對于力的正確認識和研究時間卻并不 長,因為力這個物理量既無法直接觀察, 也無法直接測量。從亞里士多德認為力 是維持物體運動的原因到伽利略認識到 力是改變物體運動的原因,中間經歷了 兩千多年。正因為力無法直接觀察和測 量,必須借助力傳感器將其轉換為其它 物理量后進行測量。
力傳感器
力傳感器的種類繁多,如電阻應變 片壓力傳感器、半導體應變片壓力傳感 器、壓阻式壓力傳感器、電感式壓力傳 感器、電容式壓力傳感器、諧振式壓力 傳感器及電容式加速度傳感器等。但應 用最為廣泛的是電阻應變片壓力傳感 器,它具有極低的價格和較高的精度以 及較好的線性特性,市場上大部分稱重 量具比如電子枰都采用電阻應變式壓力 傳感器。咱們今天用電阻應變式稱重傳 感器開展兩套信號調理電路,并針對其 特性進行物體重量的測量和顯示,最后 完成實用電子秤的制作。
■電阻應變式稱重傳感器的特性
在進入電路分析前有必要先了解下 電阻應變式傳感器的特性。電阻應變片 是一種將被測件上的應變量轉換成一種 電信號的敏感器件。如圖1所示為電 阻應變片的結構示意圖,它由基體材料、 金屬應變絲或應變箔片、絕緣保護片和 引出線等部分組成。
當基體受力發生形變時,電阻應變 片也一?產生形變,使應變片的阻值發 生改變,從而使加在電阻上的電壓發生 變化。這種應變片在受力時產生的阻值 變化通常較小,一般這種應變片都組成 應變電橋,并通過后續的儀表放大器進行放大。為了提高測量精度,通常把四片應變片組合成全橋測量電路, 如下圖2所示為電阻應變片全橋測量電路的電路模型。四個臂R1、 R2、R3、R4都用電阻應變片代替。
在實際的生產應用中通常將四片電阻應變片通過特殊的材料緊 密的粘合在能產生力學應變的基體上。圖3所示為后續被使用到的 梁式電阻應變片稱重傳感器。類似于橫梁,其中間通常留有一些孔 或槽,上下兩面各貼有電阻應變片。整個傳感器由全橋電阻應變片 和基體構成,當梁受力發生機械形變時電阻應變片也發生形變,直接導致了電阻值的變化。在整個傳感器電路中會把 電阻值的變化直接轉換成輸出電壓值的變化。
光有梁式稱重傳感器還不能制作成電子枰,還 需要為梁式稱重傳感器打造一套可以稱重的拖盤結 構,如圖4所示,是電子秤的本 體機械圖,包含稱重托盤、傳感 器-橋臂和底座。
■分立件信號調理電路
橋臂式傳感器的信號調理電 路,采用儀表放大器進行放大。 儀表放大器是一種高增益、直流 耦合放大器,它具有差分輸入、 單端輸出、高輸入阻抗和高共模 抑制比等特點。電路特點決定了 適應橋臂式傳感器的信號調理放 大,而運算放大器只有工作在雙 電源情況下才能對稱的進行零點 調節。因此不得不為電路設計雙 路輸出電源,如圖5所示。傳感 器工作電壓由HT7550-S.0V的 LDO芯片供電,其中W2用于 電路零點調節,W1是放大倍數 調節,也就是常說的量程。
每一款傳感器的出廠性能都 不一致,因此欲想得到準備的質 量與輸出電壓值,必須對電路加 以調試,首先是電路輸出調零。 所謂調零,就是電子枰接入傳感 器信號電路后,電子秤空載的輸出電壓必須為0V。如果是簡易的調節W2電位器能就校準 輸出電壓,那么你的想法就錯了。真正能有效的校準這個信 號調理電路輸出為0V的方法如下。
這里使用了稱重傳感器標稱值為5Kg ,若稱重物體為 100g ,輸出電壓為0.1V ;若稱重物體為1kg ,輸出電壓為 IV。由此可以理論得到一個交好的線性關系:y = k x + b ,其中y表示電壓,x表示質量。因此對電 路校準輸出0V必須在電子秤空載的情況下先 將W2進行調整,用萬用表測量U6第6腳輸 出電壓為0V時完成第一步;然后將_個lKg 的物體置于電子枰上,測量輸出電壓值可能會 偏離IV ,此時調整W1進行量程核準,使輸 出電壓為IV ;最后將lKg物體移走,再用萬 用表測量輸出電壓值,若不為0V ,重新微調 W2。以上步驟可以多重復幾次,或更換不同 重量的物體測量,使電路保證輸出準確的0V。 測試連接如圖6所示,其中電源部分使用萬能 板焊接的,由雙路輸出變壓器供電,控制器使 用 C51/AVR/Arduino 主板的 Arduino 部分。
校準結束后,可以取兩種不同重量的物體, 進行人工測量。求出線性關系中的斜率和截距, 方便后面的開發使用。筆者測量725g和100g 兩個物體,實際測量輸出電壓值分別為714mv 和107mv ,兩點坐標值可以求出斜率k值為 0.9712 ,通過公式代入_個坐標值即可得出截 距b值為1.04552。有了這個線性關系,可以 利用線性函數關系式實時測量傳感器的輸出電 壓進而計算出測試的稱重物體的質量。
接下來就可以測量下實際物體重量,開始 進入電子枰制作工作中。使用Arduino芯片處 理,可以加速整個調試開發過程。Arduino內 置了 10位精度的ADC $專換功能,其簡易的電 子枰實現流程如圖7所示。
使用Arduino的A0接口采集輸出電壓值, 用Arduino調試窗口直接觀察稱重物體的質 量。圖8所示為測量725g物體的顯示的質量, 從顯示數據上看,其測量的輸出電壓值有漂移 浮動,使得計算出來的質量隨之跳動。
Arduino演示代碼如下:程序中使用了人 工標定后計算出的線性函數關系因子數和多次 采樣取平均值的濾波方法。 void setupQ9600 bits per second:
Serial.begin(9600);
}
//_平均濾波法 #define FILTER_N 10 float Filter()
{
int i;
float filter_sum = 0; for(i = 0; i < FILTER_N; i++)
{
int sensorValue = analogRead(AO);
// read the input on analog pin 0 // Convert the analog reading (which goes from 0 -1023) to a voltage (0 - 5V):
float voltage = sensorValue * (5.0 / 1023.0); filter_sum += voltage;
II read the input on analog pin 0: delay(l);
}
return (float)(filter_sum / FILTER_N);
}
// the loop routine runs over and over again for-ever:
void loop()
{
float k = 0.9712; II人工標定計算出的斜率float b = 1.04552; //人工標定計算出的截距 II獲得濾波器輸出值
float Wei = ((Filter()*1000) - b) / k; // 線性函數 Serial.print(Wei,3); // print out the value you
read:
Serial.print( 'g');
Serial.print(" ");
Serial.print(Wei/1000,3); // print out the value you read:
Serial.println( "Kg"); delay(500);
}
-集成化數字電踣模塊
故名思義,接下將要介紹的是用數字電路模塊用來采集 稱重傳感器的輸出動態電壓。此款模塊為電子秤專用模擬I 數字轉換器芯片,HX711。其內部具有24位A/D高精度 轉換器,可輸入兩通道差分信號,其中通道A的増益可編 程128和64倍。工作電壓范圍在2.6V至5.5V ,圖9為官 方提供的參考電路。
由于將信號調理電路已集成為芯片,所以就沒有了外圍 調節校準等工作,也不存在標定和計算線性關系因子。接下 來將使用STC89C52RC單片機對模塊進行通信,并將使用 4X4矩陣鍵盤對稱重物體進行計價操作,LCD1602顯示模 塊顯示質量、單價和支付金額,同時在程序設計中増加負壓 和過壓檢測報警動作。
圖10是對lg的跳線進行稱重示意,其結果很穩定, 默認顯示的單位的Kg ;圖11是對稱重物體進行單價99
元輸入后的計算應付金額為3.5 元。因為稱重傳感器會有受到托 盤的重力,存在一定的毛重,所以電子稱在進入初始化工作時必須對電子稱進行一次毛重計算, 直接正常工作后,當前稱重的數 據需要減去毛重,這樣稱出來的 重量值才是實物的重量。此款電 子秤的實現流程基本和Ard u i - no版一樣,只是大部工作均由 HX711芯片輔助處理了,C51 只需要連續發送脈沖給HX711 后直接讀取出HX711已經轉換圖9 HX711模塊參考應用C51電子稱參考代碼如下所示:程序中Weight_Mao- pi變量就是電子稱上電后的對托盤稱重的毛重。其中轉換 后的數據除以100是用來縮小數據,將后續計算出的單位 化為g ,即4位有效值。而計算實物重量時除以4.22 ,這 個數值因不同的稱重傳感器特性曲線不一樣,每一個傳感器 都會有一個矯正值,這里取值為4.22。當發現測試出來的 重量偏大時,可加大這個數值,反之減小,該數值一般在4.0 到5.0之間,計算式最后補加0.05是保證測量結果以四舍 五入百分位計算。完整驅動程序讀者們從《電子制作》雜志 社網站下載。
void Get一Weight()
{
HX711_Buffer = HX711 Read();
HX711_Buffer = HX711 Buffer /100;
Weight_Shiwu = HX711_
Buffer;
Weight_Shiwu = Weight_
Shiwu - Weight_Maopi; //獲 取實物的AD采樣數值。
Buzzer = 0; //負重量報警 }
else if(Weight_Shiwu > 5000) II壓力傳感器上總質量 大于5Kg的最大量程,報警 {
Buzzer = 0;
}
else if(Weight_Shiwu > -200) //正常測量
Buzzer = 1; //關閉警報Weight_Shiwu (unsigned int)((float)Weight_
Shiwu / 4.22 + 0.05); //計 算實物的實際重量
if(Weight_Shiwu < -300)
//稱重小于毛皮值說明負重 300克的漂移值
總結
通過兩種稱重傳感器信號處理電路的分析和實測,可總 結出。分立件儀表放大器電路結構復雜,電源供電復雜、調 試步驟繁多,雖然線性度還是比較好,但會存在若電源不穩 定、溫度上升、工作時間過長會影響輸出電壓發生漂移,在 運算上增加了復雜的計算難度。而電子秤專用集成化芯片, 供電簡單、功耗低、線路精簡、轉換精度高、無調試步驟、 無溫漂等影響。