정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

아두이노 4선식 로드셀 4개를 이용한 코드 작성 중 오류..!
chan | 2021-06-02

4선식 로드셀 4개를 아두이노에 연결한 후, 각각의 로드셀에서 측정된 센서값을 시리얼모니터에 동시에 출력하는 코드를 작성하고자 합니다.

다음과같이 코드를 작성하였으나,

1. 측정값이 너무 튀고

2. 양수값이 나왔다가, 음수값이 나왔다가, 손가락을 올리지도 않았는데 마구잡이로 값이 측정되고

3. 스케치 코드를 업로드 할때마다 다른 값이 측정됩니다ㅠㅠ

 

 

//

#include <HX711.h>


HX711 scale1; //39
HX711 scale2; //38
HX711 scale3; //39
HX711 scale4; //38
float calibration_factor1 = 9000;    //로드셀 종류나 상황에 따라 적당한 값으로 시작 (-52000에서 9000으로 수정)
float calibration_factor2 = 9000;
float calibration_factor3 = 9000;
float calibration_factor4 = 9000;
void setup() {
  Serial.begin(9600);
  scale1.begin(2,3); //dt 2 sck3 //39
  scale2.begin(A0,A1); //dt 2 sck3 //38
  scale3.begin(A2,A3); //dt 2 sck3 //39
  scale4.begin(A4,A5); //dt 2 sck3 //38


  scale1.set_scale();
  scale1.tare();  //Reset the scale to 0
  scale2.set_scale();
  scale2.tare();  //Reset the scale to 0
  scale3.set_scale();
  scale3.tare();  //Reset the scale to 0
  scale4.set_scale();
  scale4.tare();  //Reset the scale to 0

  long zero_factor1 = scale1.read_average(); 
  long zero_factor2 = scale2.read_average(); 
  long zero_factor3 = scale3.read_average(); 
  long zero_factor4 = scale4.read_average(); 
}

void loop() {

  scale1.set_scale(calibration_factor1);
  scale2.set_scale(calibration_factor2);
  scale3.set_scale(calibration_factor3);
  scale4.set_scale(calibration_factor4);

  Serial.print("1:");
  Serial.print(scale1.get_units(), 3);
  Serial.print(" kg    "); //나중에 다시 println으로 바꿔주기
  Serial.print("2:");
  Serial.print(scale2.get_units(), 3);
  Serial.print("kg    "); //나중에 다시 println으로 바꿔주기
  Serial.print("3:");
  Serial.print(scale3.get_units(), 3);
  Serial.print("kg    "); //나중에 다시 println으로 바꿔주기
  Serial.print("4:");
  Serial.print(scale4.get_units(), 3);
  Serial.print("kg    "); //나중에 다시 println으로 바꿔주기
  Serial.println(" "); 
  delay(2000);
 
}

 

 

//

코드 상의 문제인지 로드셀 자체의 문제인지 도저히 모르겠어서 도움이 필요합니다..ㅠ

이전글   |    아두이노 기반 로봇 팔 2021-05-31
다음글   |    smart curtain 개발 관련 질문입니다! 2021-06-05