如何使用稱重傳感器構(gòu)建高精度數(shù)字秤
你可能會想,一個沒有明顯機(jī)械運動的秤是否可能存在。事實上,如果通過應(yīng)變計(DMS)讀取,鋁塊的極微小彎曲就足以以高精度測量質(zhì)量。
在本教程中,我們使用稱重傳感器(附帶應(yīng)變片)和24位ADC HX711讀取測量信號。ESP8266或ESP32(以下簡稱“ESP”)運行MicroPython來處理數(shù)據(jù)并在OLED屏幕上顯示重量。
在上面的測壓元件中,鋁塊被擰在右邊的底板上,而左邊則是稱重平臺。即使是非常輕的物體(比如0.9克的一張紙)也會在金屬中引起微小但可測量的變形。
應(yīng)變片是在塑料基板上的極薄導(dǎo)電軌道。當(dāng)測壓元件彎曲時,這些軌跡變得稍微更長和更窄,導(dǎo)致電阻的微小變化。在橋接電路中,這個微小的信號被HX711放大并數(shù)字化。
HX711模塊放大這個非常小的電信號,并使用24位ADC進(jìn)行轉(zhuǎn)換,從而實現(xiàn)非常精細(xì)的測量。
程序和固件
?flash和編程ESP32/ESP8266通過thony IDE或μPyCraft。
?MicroPython固件:最新版本(例如v1.19.1版本)。
這個項目的MicroPython模塊:
?ssd1306.py - OLED顯示器的硬件驅(qū)動程序
?OLED顯示的API
?用于數(shù)字顯示的大字體集
?HX711 .py -用于HX711的API
?Scale.py -主要應(yīng)用程序代碼
自動啟動和測試
要使程序在啟動時自動運行,請將其重命名為boot.py并將其上傳到ESP。在重置時,它將自動運行。
Thonny允許您手動運行腳本(例如,按F5)進(jìn)行即時調(diào)試- MicroPython在傳統(tǒng)Arduino工作流上的關(guān)鍵優(yōu)勢。
下面是與ESP8266和ESP32使用相同HX711模塊的接線圖。確保使用不干擾ESP啟動過程的GPIO引腳,并正確連接I2C總線(ESP8266: GPIO4=SDA, GPIO5=SCL;Esp32: gpio21 = sda, gpio22 = scl)。
HX711 MicroPython模塊
HX711不是I2C傳感器;它通過輸出和DPCLK引腳串行通信。每個24位轉(zhuǎn)換之后是1-3位選擇通道(A/B)和增益設(shè)置。
文件HX711 .py包含HX711類和一個自定義異常,如果模塊沒有響應(yīng)。在下面的示例代碼片段中,您可以看到如何逐位請求數(shù)據(jù):
首先傳輸MSB(最高有效位)。channel參數(shù)選擇使用哪個通道(A/B)和增益因子。
使用稱重傳感器HX711和ESP (ESP8266或ESP32),您可以構(gòu)建非常精確的秤。MicroPython使讀取和顯示測量結(jié)果變得簡單,即使實際的金屬變形是在原子尺度上。HX711仍然能夠產(chǎn)生穩(wěn)定的、可重復(fù)的讀數(shù)。
本文編譯自hackster.io