我目前正在做一个IoT项目,在这个项目中,我尝试将我的Raspberry 3与HX711接口,这样我就可以从我的负载传感器读取200公斤的重量读数。
对于Python代码,我尝试了来自github的Python库
根据这个存储库的描述,我首先使用一个5公斤的已知重量校准了HX711 (calibration.py),给出了偏移量和比例尺。之后,我复制了它们并在example_python3.py中使用了它们。
但是,我一直从负载传感器获取可变读数,如Raspberry Pi窗口中的以下屏幕截图所示:

我是通过投入5公斤的负荷来获得这个产量的。我多次尝试过这个校准和检查输出的循环,但是输出仍然是可变的。
这是我使用的代码:
import RPi.GPIO as GPIO
import time
import sys
from hx711 import HX711
# Force Python 3 ###########################################################
if sys.version_info[0] != 3:
raise Exception("Python 3 is required.")
############################################################################
GPIO.setwarnings(False)
hx = HX711(5, 6)
def cleanAndExit():
print("Cleaning...")
GPIO.cleanup()
print("Bye!")
sys.exit()
def setup():
"""
code run once
"""
#Pasted Offset and Scale I got from calibration..
hx.set_offset(8608276.3125)
hx.set_scale(19.828315054835493)
def loop():
"""
code run continuosly
"""
try:
val = hx.get_grams()
print(val)
hx.power_down()
time.sleep(0.001)
hx.power_up()
except (KeyboardInterrupt, SystemExit):
cleanAndExit()
##################################
if __name__ == "__main__":
setup()
while True:
loop()发布于 2021-10-16 09:24:22
不幸的是,我没有HX711,所以我不能测试您的代码。但我可以给出一些可能有帮助的建议。
注:还注意到您的偏移量(8,608,276.3125)不能正确。HX711返回24位2的补码值.这意味着-8,388,607和+8,388,608之间的值。你的价值超出了这个范围。获得此值的原因是您使用的库没有正确地考虑数据编码。见这一讨论。存储库中有几个分支对此进行了修复,例如这一个。如果正确读取,该值将为-8 168 939.6875。此错误不会影响准确度,但可能导致某些权重的结果不正确。
对于每个认为精度是24位的人来说,这只是最后一个提示,因此它应该返回非常可靠的读数:精度与精度不一样。仅仅因为设备返回24位并不意味着这些比特是正确的。该值与实际值(实际权重)的距离取决于许多其他因素。请注意,默认情况下使用的库读取权重16次,并平均读取结果。如果这个装置是如此精确的话,那就根本没有必要了!
我的建议:
https://stackoverflow.com/questions/69572201
复制相似问题