-
-
-
Tổng tiền thanh toán:
-
Sửa lỗi thư viện HX711.h cho cảm biến khối lượng Loadcell
05/08/2022
Sửa lỗi thư viện HX711.h cho cảm biến khối lượng Loadcell
Kiểu code cũ trước của thư viện HX711:
#include "HX711.h"
#define DOUT 3
#define CLK 2
HX711 scale(DOUT, CLK);
float calibration_factor = -103525;
void setup() {
Serial.begin(9600);
Serial.println("HX711 Calibration");
Serial.println("Remove all weight from scale");
Serial.println("After readings begin, place known weight on scale");
Serial.println("Press a,s,d,f to increase calibration factor by 10,100,1000,10000 respectively"); Serial.println("Press z,x,c,v to decrease calibration factor by 10,100,1000,10000 respectively");
Serial.println("Press t for tare");
scale.set_scale(); scale.tare(); //Reset giá trị về 0
long zero_factor = scale.read_average(); //đọc thông tin
Serial.print("Zero factor: ");
Serial.println(zero_factor); }
void loop() { scale.set_scale(calibration_factor); //điều chỉnh theo hệ số hiệu chỉnh Serial.print("Reading: "); Serial.print(scale.get_units(), 3);
//********************//
Phần tô mầu đỏ vàng ở trên sẽ báo lỗi (status 1 no matching function for call to 'HX711::HX711(int, int)')
Do thư viện đã sửa lại nên bạn chỉ cần sửa lại như sau là được:
#include "HX711.h"
#define DOUT 2
#define CLK 3 //chú ý không dùng tên SCK vì trùng tên lệnh hệ thống
//Hoặc dùng kiểu dưới
//const int DOUT = 2;
//const int CLK = 3;
HX711 scale; //Sửa chỗ này
float calibration_factor = -103525;
void setup() {
Serial.begin(9600);
scale.begin(DOUT, CLK); //Thêm lệnh này nữa là xong
Serial.println("HX711 Calibration");
Serial.println("Remove all weight from scale");
Serial.println("After readings begin, place known weight on scale");
Serial.println("Press a,s,d,f to increase calibration factor by 10,100,1000,10000 respectively");
Serial.println("Press z,x,c,v to decrease calibration factor by 10,100,1000,10000 respectively");
Serial.println("Press t for tare");
scale.set_scale();
scale.tare(); //Reset giá trị về 0
long zero_factor = scale.read_average(); //đọc thông tin
Serial.print("Zero factor: ");
Serial.println(zero_factor);
}
void loop() {
scale.set_scale(calibration_factor); //điều chỉnh theo hệ số hiệu chỉnh
Serial.print("Reading: ");
Serial.print(scale.get_units(), 3);
Serial.print(" kg"); //Thay đổi giá trị này thành kg và điều chỉnh lại hệ số hiệu chuẩn
Serial.print(" calibration_factor: ");
Serial.print(calibration_factor);
Serial.println();
if(Serial.available())
{
char temp = Serial.read();
if(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;
else if(temp == 'd')
calibration_factor += 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(); //Reset giá trị về 0
}
}