想给手机支架做个"过载报警"、给机器人加个压力反馈、或者干脆diy一台电子秤,绕不开的往往是称重传感器。而Arduino读称重有个天然短板:内置ADC只有10位,称重里微弱的应变信号根本测不准。HX711就是专门为这个来的——一颗24位ADC芯片,能把悬臂梁称重传感器那点微小变化放大并读得很细腻。这篇把它的四线接线、去皮和校准讲透。
先懂称重传感器和HX711的关系
悬臂梁称重传感器内部是一组应变片,摆成惠斯通电桥。受力时电阻变化,输出一个用毫伏计的微弱电压差。这个信号太弱,Arduino的10位ADC读出来糊成一片,所以中间得插一个放大器。HX711就是这么一颗24位ADC芯片,它把电桥的mV级信号放大后转成数字量,再由主控读出。这样称一杯水、几十克的微小重量也能有明显读数。

四根线到底怎么接
普通悬臂梁称重传感器引出红、黑、白、绿(有的蓝)四根线,对应电桥的E+、E-、A+、A-。接法是:传感器红色线接HX711的E+,黑色接E-,白色接A-,绿色或蓝色接A+。如果读数方向反了(越重数值越小),把A+和A-两根对调就行,这是最好查的。
HX711这边接到Arduino很简单:VCC接5V,GND接GND,DT数据线接一个数字口(比如D2),SCK时钟线接另一个数字口(比如D3)。DT和SCK一般用任意两个数字GPIO都行,不一定非D2D3。

去皮和校准是出准数的关键
光接上线还不够,称重必须校准。用HX711.h或Adafruit的库,流程一般是三步:先set_scale()清零,再tare()去皮(把秤盘本身的重量归零),最后放一个已知重量的砝码,微调校准系数calibration_factor,直到读数等于砝码重量。在校准代码里,通过按+放砝码、按-去砝码来上下调整系数,这步是实测出来的,不是套用别人数值。电机、称装载平台上别在带重的情况下直接上电,稳定后再取读数会准得多。
几个容易踩的坑
第一,称重传感器的四根线特别细,焊的时候别捏坏,最好用排针或压线端子。第二,供电要稳,HX711和传感器都用同一个稳定的5V,别在用电机同一路电源上硬扛,干扰大读数会乱跳。第三,信号线别拉太长,长了容易受电磁干扰,必要时用屏蔽线。第四,如果是四个小应变片自己拼桥,得用组合板把四路汇成一路标准四线再接HX711。
把四根桥线接对、电源给稳、再花十分钟做个校准,HX711称重就能出准数。卡壳九成在线序和校准系数上,顺着这两处查基本就能绕开。


供电一定得稳,我一开始跟电机共用一个电源,读数跳得没法看,换独立电源就干净多了
先用砝码校一遍真比瞎调强,放杯水测都准,上手没那么玄乎
四线桥接反了读数反而变小这个太真实,我第一版也是,后来A+A-对调才顺,校准系数都得重新标