Arduino UNO 制作高精度电子秤:分步指南、元件清单与代码
元器件与材料
- Arduino UNO ×1
- 3kg 称重传感器 (Load Cell) ×1
- 1602 LCD (白字蓝底) ×1
- I2C LCD 适配模块 ×1
软件与在线服务
- Arduino IDE
项目简介
想测电子元件重量,自制电子秤。需安装三个库:
LiquidCrystal_PCF8574(I2C LCD 驱动)Wire(I2C 通信,内置)HX711(称重传感器 ADC 芯片驱动)
按原理图接线。编程分两步:
- 校准:烧录校准草稿,空载开机 → 放已知重物 (如 250g) → 串口监视器用 a/s/d/f 或 z/x/c/v 调整校准因子,直到读数等于已知重量 → 记下校准因子。
- 正式草稿:将校准因子填入
scale.set_scale(xxxxxxx)并上传。
复位皮重用一按键 (引脚 7,内部上拉)。
代码
/* 3kg Load Cell + HX711 + Arduino + I2C LCD
* Arduino 2 -> HX711 CLK
* Arduino 3 -> HX711 DOUT
* 5V -> VCC, GND -> GND
*/
#include "HX711.h"
#define DOUT 3
#define CLK 2
HX711 scale(DOUT, CLK);
#include
#include
LiquidCrystal_PCF8574 lcd(0x3F);
float calibration_factor = -96650; // 校准后填入此值
const int SW = 7; // 复位皮重按键
void setup() {
Wire.begin();
Wire.beginTransmission(0x3F);
pinMode(SW, INPUT_PULLUP);
lcd.setBacklight(255);
lcd.begin(16, 2);
lcd.setCursor(0,0); lcd.print("Nissi 3kgLoadCell");
lcd.setCursor(0,1); lcd.print("Press Sw to tare");
scale.set_scale(-849650); // 示例值,替换为实测校准因子
scale.tare();
}
void loop() {
lcd.setCursor(0,1);
lcd.print("W = ");
lcd.setCursor(6,1);
lcd.print(scale.get_units(), 3); // 保留 3 位小数
lcd.println(" kg ");
if (digitalRead(SW) == LOW) {
scale.tare(); // 按键复位皮重
}
}
原理图

制造工艺