HX711称重传感器怎么接Arduino:24位ADC压力采集+校准做电子秤

2026-10-21 22:56:19 3阅读

HX711是专门给称重传感器设计的24位ADC芯片,配合悬臂梁式称重传感器使用,几块钱一个模块,精度能到1克。做电子秤、宠物喂食秤、花盆称重监测这类项目都离不开它。普通的Arduino模拟口只有10位精度,读数跳得厉害,HX711直接把模拟信号转成24位数字量,稳定得多。

HX711称重传感器接Arduino接线图

称重传感器四根线怎么接HX711

悬臂梁式称重传感器一般出四根线:红色E+(激励正)、黑色E-(激励负)、白色A-(信号负)、绿色A+(信号正)。这四根线接到HX711模块的J1排针上,对应E+、E-、A-、A+。不同厂家的传感器线色可能不一样,拿到手先看卖家给的色标,别光靠颜色猜。

HX711模块另一侧引出四个引脚接Arduino:VCC接5V或3.3V都行,GND接地,DT(数据)和SCK(时钟)接任意两个数字引脚,比如DT接D3、SCK接D2。这两根线不是I2C也不是SPI,是HX711自己的同步串行协议,通信很简单,靠时序翻转。

代码怎么写:HX711库一步到位

Arduino IDE里搜HX711库,推荐bogde写的HX711 Arduino Library,装好之后代码很简单。初始化时指定DT和SCK引脚,然后读HX711.get_value()拿到原始AD值。这个原始值是个二十几位的整数,直接看没啥意义,需要校准后才能换算成克。

校准分两步:先不放东西,读一次空载值作为零点;再放一个已知重量的东西(比如一罐330ml的可乐,约355克),读一次满载值。用公式算出scale系数:scale = (满载读数 - 空载读数) / 已知重量。之后每次读数减去空载值再除以scale就是实际重量了。这个scale系数跟传感器量程、HX711增益档有关,换了模块或传感器要重新校准。

增益档位怎么选:128倍还是64倍

HX711支持三档增益:128倍(通道A默认)、64倍(通道A)、32倍(通道B)。家用称重场景用128倍就够了,灵敏度高,能分辨小重量变化。如果你的传感器量程大(比如50kg以上),128倍可能读数不稳,可以降到64倍牺牲一点灵敏度换稳定性。

代码里用HX711.set_gain(128)设置。注意每次set_gain之后要重新读一次空载值,因为增益档变了零点会漂。

做电子秤的那些坑

第一个坑是震动和气流。HX711精度太高了,桌子晃一下、风扇吹一下,读数就跳。做电子秤的时候,传感器底下要垫橡胶垫减震,上面加个亚克力板当防风罩。如果读数还是跳,可以在代码里做10次采样取平均。

第二个坑是温漂。称重传感器是应变片原理,温度变化会引起零点漂移。冬天开机冷机和热机半小时后的读数能差几十克。做精确称重要预热几分钟再校准,或者代码里加温度补偿。

第三个坑是传感器固定方向。悬臂梁式传感器有方向性,固定端和受力端别装反。装反了也能读出数据,但线性度差很多,称重不准。传感器上一般标了箭头指示受力方向,安装时对着看。

HX711加悬臂梁传感器这套方案,在DIY称重领域基本是标配组合了。几块钱的模块、几行代码就能做出克级精度的电子秤。关键是校准要做仔细,物理减震要做到位,这两点搞定了就很稳。


作者:电机传感器师
链接:https://www.aiddithome.com/p/3a557ff73a8ab.html
本作版权归作者所有,未经允许请勿转载。若存在违规行为,您可以点击 “举报”。


登录 后发表评论
3条评论
刷着刷着入坑了
1楼 · 8小时前

温漂这个坑确实有,我之前冬天做秤,开机就校准,结果用着用着读数越来越大,后来看了datasheet才发现是温漂。现在我都先预热5分钟再校准。

板砖搬不动
2楼 · 8小时前

请问校准的时候用已知重量的东西,具体怎么确定那个东西的重量?

老张装机
3楼 · 8小时前

HX711确实好用,我做了个猫咪喂食秤,悬臂梁传感器5kg量程,校准之后精度能到2克。不过有个坑:那个bogde的库默认gain是128,我用50kg传感器的时候读数跳得厉害,改成64就好了。