學(xué)物聯(lián)網(wǎng),來萬(wàn)物簡(jiǎn)單IoT物聯(lián)網(wǎng)!!
一、產(chǎn)品簡(jiǎn)介
下圖是一款量程為5kg的稱重傳感器,采用懸臂梁方式安裝。傳感器主體結(jié)構(gòu)是一個(gè)開孔金屬條,金屬條上下表面各貼有兩個(gè)應(yīng)變電阻,當(dāng)金屬條受力發(fā)生變形時(shí)時(shí),應(yīng)變電阻的阻值也會(huì)隨之發(fā)生變化。電子秤的原理便是根據(jù)測(cè)量到的電阻變化前后電壓差信號(hào)進(jìn)而計(jì)算出重物的質(zhì)量。
引腳定義:
- VCC:接 3.3V
- DT:接 GPIO
- SCK:接 GPIO
- GND:接 GND
二、技術(shù)參數(shù):
- 量程:0~5Kg
- 靈敏度:1.0 mv/v
- 精度:24位ADC采樣精度
三、軟件接口
EleScale(clkDev, dataDev, capValue) - 創(chuàng)建EleScale驅(qū)動(dòng)對(duì)象
- 函數(shù)原型:
scaleObj = EleScale(clkDev, dataDev, capValue)
- 參數(shù)說明:
參數(shù) | 類型 | 說明 |
---|---|---|
clkDev | GPIO | 傳入Pin對(duì)象 |
dataDev | GPIO | 傳入Pin對(duì)象 |
capValue | float | 測(cè)量系數(shù),理論值為429.5,測(cè)量值除以capValue的結(jié)果為被測(cè)物體的質(zhì)量(克)。由于不同的傳感器其特性曲線并非完全相同,因此在測(cè)量時(shí)可能會(huì)出現(xiàn)一定的偏差,建議在初次使用時(shí)使用標(biāo)準(zhǔn)砝碼對(duì)電子秤做一次校準(zhǔn),如果測(cè)量值偏大則適當(dāng)增大capValue,反之,如果測(cè)量值偏小就適當(dāng)調(diào)小capValue,直到測(cè)量值與砝碼重量直接的偏差在誤差允許范圍為止。 |
- 返回值:
EleScale對(duì)象創(chuàng)建成功,返回EleScale對(duì)象;EleScale對(duì)象創(chuàng)建失敗,拋出Exception - 示例代碼:
from machine import Pin
import elescale
clkDev = Pin(16, Pin.OUT , Pin.PULL_DOWN)
dataDev = Pin(17, Pin.IN , Pin.PULL_UP)
scaleObj = elescale.EleScale(clkDev, dataDev, 430.0)
print("elescale inited!")
- 輸出:
elescale inited!
getWeight() - 獲取被測(cè)物體重量
- 函數(shù)功能:
獲取被測(cè)物體的重量(克) - 函數(shù)原型:
EleScale.getWeight()
- 參數(shù)說明:
無(wú) - 返回值:
返回值 | 類型 | 說明 |
---|---|---|
value | float | 返回被測(cè)物體的重量,單位為克。 |
- 示例:
from machine import Pin
import elescale
import utime
clkDev = Pin(16, Pin.OUT , Pin.PULL_DOWN)
dataDev = Pin(17, Pin.IN , Pin.PULL_UP)
scaleObj = elescale.EleScale(clkDev, dataDev, 430.0)
print("elescale inited!")
while True:
weight = scaleObj.getWeight()
print("%.2f g"%weight)
utime.sleep(1)
- 輸出:
elescale Init!
0.04 g
0.00 g
0.00 g
四、接口案例
- 代碼:
from machine import Pin
import elescale
import utime
clkDev = Pin(16, Pin.OUT , Pin.PULL_DOWN)
dataDev = Pin(17, Pin.IN , Pin.PULL_UP)
scaleObj = elescale.EleScale(clkDev, dataDev, 430.0)
print("elescale inited!")
while True:
weight = scaleObj.getWeight()
print("%.2f g"%weight)
utime.sleep(1)
- 輸出:
elescale Init!
0.04 g
0.00 g
0.00 g
五、工作原理
電子秤結(jié)構(gòu)示意圖如下:
四個(gè)電阻組成一個(gè)惠斯通電橋,當(dāng)空載時(shí)電橋處于一個(gè)平衡狀態(tài),即輸出電壓E0=輸入電壓Ex,當(dāng)托盤上放有重物時(shí)力F>0,此時(shí)金屬條會(huì)發(fā)生一定程度的形變,應(yīng)變電阻R1~R4阻值發(fā)生變化,對(duì)應(yīng)的輸出電壓E0與輸出電壓Ex之間就會(huì)有一個(gè)壓差。
此稱重傳感器采用24位高精度的A/D轉(zhuǎn)換器芯片hx711,該芯片專為高精度電子稱而設(shè)計(jì),具有兩路模擬通道輸入,內(nèi)部集成128倍增益可編程放大器,是一款理想的高精度測(cè)量模塊。hx711模塊接線圖如下所示:
被測(cè)物體重量計(jì)算公式:
m
=
A
D
C
o
u
t
×
M
128
×
2
24
×
1
m
v
/
v
=
1
429.5
A
D
C
o
u
t
m = \frac{ADC_{out} \times M}{128 \times 2^{24} \times 1mv/v} = \frac{1}{429.5} ADC_{out}
m=128×224×1mv/vADCout?×M?=429.51?ADCout?
其中:文章來源:http://www.zghlxwxcb.cn/news/detail-770098.html
- m為被測(cè)物體重量,單位g
- M為量程此處等于5000,單位g
- 為HX711輸出的ADC采樣數(shù)據(jù)
- 128表示HX711內(nèi)部放大增益
- 2 24 2^{24} 224表示24位ADC采樣
- 表示電子秤靈敏度,即1kg重物可使測(cè)量電路上產(chǎn)生1mv的電壓輸出
注:這里的429.5即為capValue參數(shù)文章來源地址http://www.zghlxwxcb.cn/news/detail-770098.html
參考文獻(xiàn)及購(gòu)買鏈接
- [1] 購(gòu)買鏈接
到了這里,關(guān)于物聯(lián)網(wǎng)AI MicroPython傳感器學(xué)習(xí) 之 HX711稱重傳感器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!