乐鑫技术交流
直播中

李巍

7年用户 1412经验值
私信 关注
[问答]

如何使用NodeMCU ESP8266校准HX711和称重传感器?

大家好,我目前正在开发一个带有 NodeMCU 和 HX711 的称重秤,但我无法使用标准代码校准我的称重传感器,一旦它不断重置并显示以下消息:ets Jan 8 2013
,第一个原因:2,启动模式:(3,6)
load 0x4010f000, len 3584, room 16
tail 0
chksum 0xb0
csum 0xb0
v2843a5ac
~ld
这是我的代码:
#include "HX711.h"
#define DOUT 5
#define CLK 4
//一旦发现您需要以数千为单位改变它,请根据您的称重传感器更改此校准系数
HX711 scale(DOUT, CLK);
浮动校准因子 = -109525;
//================================================ ===============================================
// 设置
// ================================================ ===========================================
无效设置(){
  延迟( 0);
  序列号.begin(9600);
  Serial.println("HX711校准");
  Serial.println("从秤上取下所有重量");
  Serial.println("读数开始后,将已知重量放在秤上");
  Serial.println("按a,s,d,f分别增加校准系数10,100,1000,10000");
  Serial.println("按 z,x,c,v 分别减少校准系数 10,100,1000,10000");
  Serial.println("按 t 去皮");

  延迟(0);
  秤.皮重(); //将比例重置为0
  delay(0);
  long zero_factor = scale.read_average(); //获取基线读数
  Serial.print("Zero factor: "); //这可以用来消除去皮重的需要。在永久规模的项目中很有用。
  Serial.println(zero_factor);
  延迟(0);
}
//=============================================== ==============================================
// 循环
/ /================================================= ============================================
void loop() {
  ESP .wdtFeed();
  延迟(0);
  scale.set_scale(calibration_factor); //调整到这个校准因子
  Serial.print("阅读:");
  Serial.print(scale.get_units(), 3);
  延迟(0);
  Serial.print("公斤");
  Serial.print(" calibration_factor: ");
  延迟(1);
  Serial.print(校准因子);
  序列号.println();
  ESP.wdtFeed();
  延迟(0);
  如果(Serial.available())
  {
    char temp = Serial.read();
    如果(temp == '+' || temp == 'a')
      calibration_factor += 10;
    else if(temp == '-' || temp == 'z')
      calibration_factor -= 10;
    else if(temp == 's')
      calibration_factor += 100;  
    else if(temp == 'x')
      calibration_factor -= 100;  

      校准因子 += 1000;  
    else if(temp == 'c')
      calibration_factor -= 1000;
    else if(temp == 'f')
      calibration_factor += 10000;  
    else if(temp == 'v')
      calibration_factor -= 10000;  
    else if(temp == 't')
      scale.tare(); //将比例重置为零
  }
  delay(50);

回帖(1)

哈哈哈

2024-3-28 17:21:19
您可以尝试以下步骤来校准您的HX711和称重传感器:

1. 确保您已正确连接HX711和称重传感器到NodeMCU板上。

2. 在Arduino IDE中下载HX711库。

3. 将下面的代码复制到Arduino IDE中:

#include "HX711.h"

#define DOUT  5
#define CLK  4

HX711 scale(DOUT, CLK);

void setup() {
   Serial.begin(9600);
   scale.set_scale();
   scale.tare(); //当没有物体放在称上时,校准为“0”
}

void loop() {
   Serial.print("Reading: ");
   Serial.print(scale.get_units(), 1);
   Serial.println(" lbs");
}

4. 上传代码到NodeMCU板中。

5. 打开串口监视器,您应该看到类似下面的输出:

Reading: -0.1 lbs
Reading: -0.2 lbs
Reading: -0.2 lbs

6. 您可以使用``scale.set_scale() ``和``scale.tare() ``来校准您的称重传感器。例如,如果您需要对校准系数进行微调,您可以使用``scale.set_scale(10000) ``来将校准系数设置为10000。如果您需要将当前读数重置为0,则可以使用``scale.tare() ``。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分