要做一台电子秤,你需要四样零件:Arduino Uno、一条 5kg 条形称重传感器(load cell)、一块 HX711 放大模块,以及两块安装板。称重传感器靠弯曲来测重量——一端固定在底板,另一端固定在秤盘,HX711 再把那一点点微小的形变换算成克数,显示在你的 Arduino 上。
条形称重传感器到底是怎么测出重量的?
5kg 条形称重传感器是一整条实心铝条,白色保护贴纸下面藏着应变片(strain gauge)。固定住一端、在另一端挂上重物,铝条会发生头发丝级别的微小弯曲——应变片的电阻随之变化,但变化量小到 Arduino 引脚根本没法直接读取。这就轮到放大器出场了。
HX711 模块是一块专为电子秤设计的 24 位 ADC:通道 A 以 128 或 64 的增益放大称重传感器的信号;每秒输出 10 或 80 次采样,取决于模块上的 RATE 焊盘(这类板子出厂设为 10——做秤绰绰有余);供电范围 2.6–5.5V,所以 Uno 的 5V 引脚就能带动整套系统。
零件清单
称重传感器要怎么安装,读数才会准?
称重传感器安装板套件之所以存在,是因为大多数电子秤项目翻车的地方是安装——不是接线,也不是代码。条形称重传感器只有在能自由弯曲时才能工作。这意味着一个特定的“三明治”结构:一端固定在底板,另一端固定在秤盘,再用套件里的小垫片(spacer)把传感器条与两块板隔开,垫片留出弯曲间隙——让它上下各有一条看得见的空隙。
三条规则决定这台秤的成败:
- 一块板只锁一端。底板固定一端,秤盘挂在相对的另一端。两端都刚性锁死,传感器条就无法弯曲——不管放什么上去,读数都几乎不动。
- 保住弯曲间隙。把垫片装在传感器条和每块板之间。传感器条平贴在板面上会“触底”,读数就会卡住或者偏低。
- 顺着受力方向装。如果传感器条上印着箭头,箭头指向负载施压的方向(向下,从秤盘那一侧)。压错面或压错端,会得到错误甚至负数的读数。
传感器条两端各有两个螺纹孔——用套件配的沉头螺丝锁进最靠近每端的那一对孔,板与传感器条之间夹上垫片。


称重传感器怎么接 HX711 和 Arduino Uno?
绿色的 XFW-HX711 板一边是称重传感器的接线端子,另一边是接 Arduino 的引脚。这类条形传感器的常见约定是红 = 激励+、黑 = 激励−、白 = 信号−、绿 = 信号+——但线色在不同批次之间会有出入,所以下面的表格只当起点,不当铁律。B− 和 B+ 留空——这个项目只用通道 A(通道 B 的增益固定为较低的 32)。
| 称重传感器接线 | HX711 端子 | 含义 |
|---|---|---|
| 红色 | E+ | 激励 +(电桥供电) |
| 黑色 | E− | 激励 − |
| 白色 | A− | 信号 −(通道 A) |
| 绿色 | A+ | 信号 +(通道 A) |
| HX711 引脚 | Arduino Uno 引脚 | 备注 |
|---|---|---|
| VCC | 5V | 支持 2.6–5.5V;用 Uno 的 5V 没问题。 |
| GND | GND | 共地。 |
| DT (DOUT) | D2 | 数据输出;任何数字引脚都行。 |
| SCK | D3 | 时钟;任何数字引脚都行。 |
两点实用提醒。第一,HX711AG 出厂时排针是散装在袋子里的——先把排针焊好(或者把线直接焊上)再去相信任何读数,因为排针松动是读数乱跳的头号原因;具体做法看我们的排针焊接教程。第二,如果你的线色对不上,就用万用表把线对找出来:每一对真正的组合(激励对、信号对)测出来大约是完整的电桥电阻,而任何混搭组合大约只有它的四分之三。两对真组合当中,读数略高的那对是激励对(E+/E−),略低的那对是信号对(A+/A−)——这一系列传感器条的输入端大约是 1115Ω,输出端约 1000Ω——电阻怎么量,我们的万用表使用教程里有示范。想做更精细的测量,还有更高精度的 HX711 版本可选。

怎么用已知重量校准这台秤?
HX711 输出的是原始计数值,不是克数——所谓校准,就是找出把两者互相换算的那个数字。先安装库:在 Arduino IDE 里打开 Sketch → Include Library → Manage Libraries,搜索 Bogdan Necula 编写的 HX711 Arduino Library。然后上传这个校准程序:
#include "HX711.h"
const int LOADCELL_DOUT_PIN = 2;
const int LOADCELL_SCK_PIN = 3;
HX711 scale;
void setup() {
Serial.begin(57600);
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
Serial.println("Remove all weight. Taring in 3 seconds...");
delay(3000);
scale.tare(); // 把当前(空载)读数设为零点
Serial.println("Done. Now place your known weight on the platform.");
}
void loop() {
// 取 10 次读数的平均值,去皮偏移已扣除
long raw = scale.get_value(10);
Serial.print("Raw value: ");
Serial.println(raw);
delay(1000);
}
秤盘上什么都不放,程序会自己去皮(tare,归零)。接下来放上一个你真正知道重量的东西:官方规格里标明重量的手机很好用,或者一件未开封的包装食品(包装上印的是净重,所以整包会比那个数字略重)。数学只有一行:
校准系数 CALIBRATION_FACTOR = 原始读数 ÷ 已知重量(克)。如果放上 200g 重物时串口监视器显示大约 84,000,那你的系数就在 420 左右。原始读数是负数,说明传感器方向或接线反了——把负号一并留在系数里,最终的秤照样显示正数。

电子秤的完整 Arduino 代码是什么?
下面这份最终程序是校准程序的“大哥”:把你的系数填进 CALIBRATION_FACTOR,上传,串口监视器就成了秤的显示屏。以后想加一块正经的屏幕?我们 Arduino 数字时钟教程里的 LCD1602 I2C 接线可以原封不动搬进这个项目。
#include "HX711.h"
const int LOADCELL_DOUT_PIN = 2;
const int LOADCELL_SCK_PIN = 3;
// 换成你自己校准得到的那个数字
const float CALIBRATION_FACTOR = 420.0;
HX711 scale;
void setup() {
Serial.begin(57600);
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
scale.set_scale(CALIBRATION_FACTOR);
Serial.println("Remove all weight. Taring in 3 seconds...");
delay(3000);
scale.tare();
Serial.println("Scale ready.");
}
void loop() {
if (scale.is_ready()) {
// 取 10 次读数的平均值,换算成克
float grams = scale.get_units(10);
Serial.print("Weight: ");
Serial.print(grams, 1);
Serial.println(" g");
} else {
Serial.println("HX711 not found - check DT/SCK wiring");
}
delay(500);
}
最后一两克有点飘是正常的——业余级的条形传感器会随温度轻微漂移,长时间压着重物也会有轻微蠕变。每次开始称重前先去皮一次,数字最稳定。读数疯狂乱跳几乎从来不是 HX711 芯片的错:多半是排针没焊、一对线接反,或者上面那一节讲的安装问题。
我们聊天里最常见的请求之一就是 “load cell + HX711 install tutorial video please”——下面这支视频把四线接法、安装和校准从头到尾完整演示了一遍(它的代码部分用的是另一个 HX711 库——请以本页的程序为准):
我们在真实客户身上最常见到的错误
客服聊天里几乎每一个称重传感器加 HX711 的安装问题,都逃不出下面这几种。
- 把传感器条两端都锁死。秤能开机、能去皮,然后放上重物却几乎没反应。传感器条必须能自由弯曲——一端固定在底板,另一端固定在秤盘,中间留出弯曲间隙。
- 省掉垫片。传感器条平贴在板上直接“触底”,远没到 5kg 读数就卡死了。安装板套件里的垫片不是包装填充物——它们本身就是机构的一部分。
- 盲目相信线色。白绿信号对接反,读数就是负数或镜像。把 A+ 和 A− 上的那对线对调,或者保留负的校准系数。
- 排针不焊就用 HX711。松松插在面包板孔里的引脚,制造出来的正是那种大家回头去怪芯片的乱跳读数。
- 拿猜出来的重量做校准。结果秤读得非常稳定——稳定地错。用规格标明重量的手机,或者别的核实过的参考重量。
常见问题
为什么我的读数是负的?
要么是信号对接反了(白线和绿线在 A+ 与 A− 上互换),要么是传感器装反了,负载把它往箭头相反的方向压弯。对调两根信号线、翻转安装方向,或者干脆用负的校准系数——三种做法得到的结果一样正确。
为什么读数过几分钟就漂移?
业余级条形称重传感器会随温度变化轻微漂移,长时间承重也会有轻微蠕变——在这个价位这是正常现象,不是故障。每次称重前先去皮;需要可重复的数据时,别让重物在秤盘上一放就是几个小时。
这个称重传感器能称超过 5kg 吗?
不能——超过额定值后,传感器条可能永久变形,之后就再也读不准了。预计要称更重的东西,就换同款传感器条的 10kg 或 20kg 版本(同一个商品页面有售),并在最大值之下留出安全余量。
HX711 的排针真的必须焊吗?
必须。排针出厂时散装在袋子里、没有焊接,松松插在孔里的引脚会时通时断,表现出来就是读数乱跳或卡死。花 10 分钟拿电烙铁焊好,一劳永逸。
能不能不看串口监视器,改接一块 LCD 显示屏?
可以——带 I2C 背包的 LCD1602 只需要四根线(5V、GND、A4、A5),并且不占用 HX711 用的 D2 和 D3。先让秤在串口监视器上正常工作,再把打印语句搬到 LCD 上。
最后更新:2026年8月。有问题?WhatsApp 联系我们。



Arduino Uno Compatible SMD UNO R3 with Type B Cable - ATMEGA328P with CH340G-Microcontroller Project
HX711 Load Cell Weight Sensor Module Digital Scale Kit 1kg 5kg 10kg 20kg Amplifier ADC Arduino DIY - 5KG LOAD CELL BAR
HX711 Load Cell Weight Sensor Module Digital Scale Kit 1kg 5kg 10kg 20kg Amplifier ADC Arduino DIY - HX711AD MODULE
HX711 Load Cell Weight Sensor Module Digital Scale Kit 1kg 5kg 10kg 20kg Amplifier ADC Arduino DIY - WEIGHT SENSOR PLATE