반응형
1. 개요
Load Cell은 전자저울에 사용되는 부품으로,
Strain gauge를 이용하여 무게를 측정한다.
기계공학의 재료역학에서 잠깐 다루는데
금속에 힘을 주면 그에 대해 변형(늘어남)이 일어나게 된다.
Strain Gauge는 저항으로 이루어진 센서로,
이러한 변형률을 전기적 신호로 바꾸어, 변형량을 측정한다.
이러한 저항의 변화가 아주 미세하기 때문에
Load Cell Amplifier을 같이 사용하게 되는데,
HX711이라는 부품을 이용하였다.
2. 회로 연결
만약 출력을 확인했을때,
값이 - 값으로 나온다면
A+와 A-를 바꿔 연결하면 된다.
3. Sketch Code
3-1. 라이브러리 설치
위 첨부한 라이브러리 압축을 풀어
윈도우의 경우,
C:\Users\user_name\Documents\Arduino\libraries 폴더 안에 넣습니다.
3-2. Calibration Code
아래의 코드는
아무 것도 없는 상태에서
측정되는 무게를 0으로 초기화하고,
무게추를 올려서
calibration_factor를 조절하여
실체 추의 무게에 맞도록 한다.
a나 +를 입력하면 factor가 증가하고
z나 -를 입력하면 factor를 감소시켜
calibration_factor를 조절하여 적절한 값을 찾을 수 있는 코드이다.
#include "HX711.h"
#define DOUT 3 //데이터핀 3번핀
#define CLK 2 // 클럭핀 2번핀
HX711 scale(DOUT, CLK);
float calibration_factor = -746; //로드셀 종류나 상황에 따라 적당한 값으로 시작
void setup() {
Serial.begin(9600);
Serial.println("HX711 calibration sketch");
Serial.println("Remove all weight from scale");
Serial.println("After readings begin, place known weight on scale");
Serial.println("Press + or a to increase calibration factor");
Serial.println("Press - or z to decrease calibration factor");
scale.set_scale();
scale.tare(); //Reset the scale to 0
long zero_factor = scale.read_average(); //Get a baseline reading
Serial.print("Zero factor: "); //This can be used to remove the need to tare the scale. Useful in permanent scale projects.
Serial.println(zero_factor);
}
void loop() {
scale.set_scale(calibration_factor); //Adjust to this calibration factor
Serial.print("Reading: ");
Serial.print(scale.get_units(), 1);
Serial.print(" kg"); //Change this to kg and re-adjust the calibration factor if you follow SI units like a sane person 우리 한국인은 모두 이성적이므로^^
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;
}
}
ref.
반응형