You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python循环中HX711称重数据仅单次添加至列表的问题求助

树莓派HX711称重传感器读数列表问题排查

嘿,我一眼就揪出问题啦——你每次循环都在重置列表,难怪永远只能拿到单个数据!

问题根源

你把X = []放在了for循环的内部,这意味着每一轮小循环都会清空之前的列表,重新创建一个空列表,然后只把当前这次的读数加进去。所以每次打印的自然就是只有一个元素的列表了。

修改后的代码

把列表初始化移到for循环外面,这样就能持续积累所有读数:

hx = HX711(5, 6)
hx.set_reading_format("LSB", "MSB")
hx.set_reference_unit(26.978)
hx.reset()
hx.tare()
while True:
    X = []  # 把列表初始化移到for循环外,每次大循环创建一个新的空列表
    for i in range(15):  # 如果想要4个读数,直接把这里改成range(4)就行
        val = int(hx.get_weight(5))
        newval = abs(round((float(val/1000)),1))
        X.append(newval)  # 持续往同一个列表里追加读数
    print(X)  # 直接打印列表,不需要额外套一层[]
    hx.power_down()
    hx.power_up()

额外优化小建议

  • 你原本预期4个读数,但代码里写的是range(15),记得根据实际需求调整循环次数;
  • print([X])会把列表再嵌套一层,变成[[x1, x2...]],直接print(X)就能得到干净的[x1, x2...]格式;
  • 如果读数过于频繁,建议在循环里加个小延迟(比如time.sleep(0.1),记得先导入time模块),避免传感器或树莓派过载;
  • hx.get_weight(5)本身已经是取5次读数的平均值,你外层的循环是再采集15次这个平均值,确保这符合你的实际测量需求。

内容的提问来源于stack exchange,提问作者Cxz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:34:22