跳到主要内容

HX711称重/形变/压力测量

一、本例程实现功能

Core通过HX711差分电压采集模块测量电桥式传感器输出的差分电压AD值,并通过 print() 函数在电脑串口调试终端打印该值。

这里通过HX711来演示测量称重传感器的目的并不完全是为了做一个称重装置,而是为了展示HX711在测量桥式传感器差分电压的众多应用中的一种。比如我们可以用HX711结合应变片搭建的电桥传感器测量物体的微弱形变,亦或者物体所受到的压力。

二、基本概念

  1. HX711

    • HX711 是一款高精度 24 位 A/D 转换器芯片,特别适合测量用于补偿温漂的桥式电路所产生的微小电压差值。 根据其RATE引脚外部所接的电平不同,HX711的输出结果频率也不同,RATE=0时HX711一秒钟能够输出10个AD采样结果,RATE=1时HX711一秒钟能够输出70个AD采样结果。
    • HX711的 通道 A 的可编程增益为 128 或 64,对应的满额度差分输入信号幅值分别为±20mV或±40mV。通道 B 则为固定的 32 增益,用于系统参数检测。 这里我们不使用通道B。
  2. 平行梁式称重传感器

    • 电桥式平行梁称重传感器的外形: 实验电子秤、邮政电子秤、厨房电子秤等一般选用双孔悬臂平行梁应变式称重传感器。它的特点是: 精度高、易加工、结构简单紧凑、抗偏载能力强、固有频率高, 其典型结构如下所示:

    sensor1

    • 传感器工作原理:

      sensor_theory

      将应变片粘贴到受力的力敏型弹性元件上, 当弹性元件受力产生变形时,应变片产生相应的应变, 转化成电 阻变化。将应变片接成下图所示的电桥,力引起的电阻变化将转换为测量电路的电压变化,通过测量输出差分电压的数值, 再通过换算即可得到所测量物体的重量。

      wire

      电桥的四个臂上接工作应变片,都参与机械变形,同处一个温度场,温度影响相互抵消,电压输出灵敏度高。当 4 个应变片的材料、阻值都相同时,可推导出以下公式:

      formula

三、接线图

平行梁式称重传感器(应变片桥式传感器),HX711,Core三者的接线方式如下图:

HX711

四、材料清单

名称推荐购买链接(或者您可以自己制作)模块/芯片硬件资料下载
称重传感器以及HX711模块购买链接下载地址
声明:这里推荐的购买链接仅供参考,您完全可以去其他商家或渠道购买,只要功能相似即可,如果需要更低的成本建议自己开发硬件模块或定制。

五、完整代码

--配置USB以虚拟串口模式工作,这样调用print()函数就会在电脑串口终端打印输出
LIB_UsbConfig("CDC")
--配置HX711模块A通道的增益为64,SCK引脚占用D3,DOUT引脚占用D4,当然也可以选择D0-D7中的其他任意引脚
LIB_HX711Config("A_64","D3","D4")
--开始大循环
while(GC(1) == true)
do
--每0.1秒查询一次HX711是否出结果
LIB_DelayMs(100)
flag, ad_value = LIB_HX711GetValue()
if flag == 1 then
--打印HX711测量的AD值,满量程24位带正负号
print(string.format("ad_value:%d\r\n", ad_value))
end
end
如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。

六、代码运行结果

电脑串口调试终端上显示的HX711测量所得的传感器差分电压AD值如下图:

result

这里我们只是通过HX711测出了平行梁式称重传感器的差分电压AD值,距离做一个真正的称重装置还需要做一些工作,比如:

  • 零点校准:在称重传感器不受任何外力时HX711所采集的AD值应该做为零点值进行校准。
  • 系数测量:比如先称给重传感器一个200克的砝码,再换成800克的砝码,然后计算600克的AD差值,这样就可以算出每克对应的AD值为多少了。