HX711重量感測

金屬導體在受到外力時會產生形變,導致它的電阻值也會產生改變,HX711是一款專為高精度電子秤而設計的24位數位/類比轉換晶片,透過測量金屬導體的電阻值的變化便能量測出作用於金屬導體的外力,因此便可以量測物體的重量。

手邊剛好有某個研習單位寄來送測的HX711重量感應器,它是高雄凱斯電子的產品,有需要的可以向凱斯電子購買,相關連結,https://www.buyic.com.tw/product_info.php?products_id=6432。我手頭拿到的是最大稱重10公斤的感測器,平時不會買這個感測器,既然東西到了手邊,就順便把它的積木做出來,以後有需要用到重量感測的專案時便馬上有積木可以用了!這組積木同時適用於7697、ESP32、Arduino,積木位置在「吉哥積木」→「模組」→「HX711重量感測選單內,它需要使用到二個腳位,SCK和Data,在使用這個裝置前必須先指定腳位,另外,BlocklyDuino F2至少要更新到20221215之後的版本。

HX711測量金屬導體的電阻值,它會有一個秤台或平台,每一家上面的秤台大小、重量也都不同,如果要把它轉換成重量單位公克的話,需要經過比對校正,需要先拿一個已確切知道它的重量的樣品來量測,藉以求得這個HX711的比例參數,量測出來的比例參數就是專屬於這個感測器的。

以下的影片是如何校正取得比例參數,以及正常量測重量的程序影片:

HX711的校正及量測方式

校正程式:如何取得專屬的HX711比例參數

要取得比例參數,要先找一個已經知道重量的樣品來進行比對,可以使用砝碼或是使用任何已經確切知道它的重量的東西當樣品。以下的程式以電腦的序列埠和開發板進行溝通,所以必須開啟Putty或是序列埠監控,程式啟動時會要求輸入樣品的實際重量,然後在重複執行重複進行比例參數的量測,每一次的量測結果會有些微的不同,可以多量幾次,看看數值比較趨近於哪個數字,把這個數字記下來,以後便使用這個專屬於這個感測器的數字來寫程式便可以了,所以測量比例參數這個程式只要執行一次,以後便不需要執行,除非覺得量測的不準確了才需要再執行這個程式重新取得比例參數!

「設定比例參數」這個積木在量測比例參數時,先設定它是1。「皮重」這個積木是用來量測感測器上的任何東西(包含秤台,秤台也是在感測器上的東西,每個秤台重量都不同,而且你也不知道它多重),以便HX711在之後的量測中把這個東西的重量扣除掉。「讀取平均重量 ____次」這個積木,會連續量測你所設定的次數取得重量數據的平均值,可自行設定想要的次數。

相關的操作程序請看上面提到的影片。

範例一:如何利用HX711量測重量

透過範例一取得比例參數後,必須將這個比例參數設定在「設定比例參數」這個積木內。確認秤台上沒有東西後,「皮重」積木會量測感測器上的所有東西,包含秤台的重量,以便實際量測時會將這些重量扣除。接下來在重複執行當中會每二秒量測秤台上的所有東西的重量,「讀取平均重量 ____次」這個積木,會連續量測你所設定的次數取得重量數據的平均值,可自行設定想要的次數。相關操作影片請看上面的影片!

範例二:較簡單的量測程式

如果不希望像上面需要確認秤台上有沒有東西的步驟,在程式啟動時確認秤台上是沒有東西的,接下來就會在重複執行時,每二秒量測一次秤台上的重量。

範例三:以ESP32+KSB065+HX711顯示重量

以下的範例會量測秤台上的物品的重量,並將數據顯示在彩色TFT上,如果重量超過你所設定的大小時,紅色的燈會亮起來。