로드셀과 앰프, 아두이노를 연결해 값을 읽어오면 처음엔 의미없는 숫자가 뜬다.

이 로드셀의 경우 아무것도 안 달았을 때 약 66000정도의 값이 찍히고, 잡아당기거나 하면 숫자가 백만 넘게까지 증가한다.
이 값을 우리가 아는 무게로 변환시켜줄 필요가 있다. 이 작업을 calibration 이라고 한다.
정확한지는 모르겠지만 여러 예제들을 살펴본 결과 이 값은 무게에 비례해 선형적으로 변화한다.
즉 (실제무게)=m*(측정된값)+a 인 식을 찾는거다.
아무 무게를 걸지않았을 때 값과 실제 무게를 아는 물체를 걸어서 나오는 값 두개를 이용해 m,a를 구할 수 있다.
이 과정을 하다보면 tare는 함수나 용어가 나오는데 이는 0점 조절하는데 쓰이는 말로, 쉽게말하면 바구니에 담긴 물체의 무게를 잴 때 바구니를 올려놓은 상태로 0점을 잡는 것을 의미한다. 빈 바구니가 올려져있는 상태를 0으로 하는 것이다.
내 경우 아무것도 안걸었을 때를 값은 약 66,000, 이를 0점으로 하고 5kg 추를 매달았을 때 206,000이라는 값이 나온다.
이를 아두이노 코드로 적용할 때
scale.set_scale(n) 의 n값에 calibration factor 를 입력해줘야한다. 이 값은 206,000/5 로 계산한다.
그렇게 넣으면 scale.get_unit 함수를 통해 실제 무게를 얻을 수 있다.
아래 링크에 잘 설명돼있다.
https://randomnerdtutorials.com/arduino-load-cell-hx711/
*함수 참고 (HX711 arduino library by Bodgan Necula ver 0.7.5 기준)
scale.set_scale() -> calibration factor 입력
scale.tare() -> 현재 걸린 무게를 0점 기준으로 잡음
scale.get_read -> 측정값을 그대로 출력
scale.get_value(n) -> 0점 조정된 측정값을 출력, n 입력시 n개의 평균을 출력
scale.get_unit(n) -> 위 값과 0점에 의해 변환된 실제 무게 출력, n 입력시 n개의 평균을 출력
*루틴
아두이노 HX711 예제 basic_example 에서 무게를 아는 걸로 측정값,0점 측정값을 기록
'#2 Project DW' 카테고리의 다른 글
| 토르크 모터 (Torque motor) 결선 [DW #03] (0) | 2022.12.20 |
|---|---|
| 로드셀과 앰프, 아두이노 (YZC-516C, HX711) [DW #01] (0) | 2022.12.08 |
| 프로젝트 시작 [DW #00] (0) | 2022.12.08 |