본문 바로가기

로켓

로드셀로 로켓 추력 측정하기/아두이노 로드셀 사용 방법

반응형

안녕하세요 박랩입니다.

오늘은 아두이노를 이용해 추력을 측정하는 방법을 공유해드리려고 합니다.

많은 분들이 로드셀을 이용해 추력을 측정하고자 합니다.

아주 쉬우니 따라하시면 됩니다.

 

준비물

  • 아두이노
  • HX711 앰프 모듈
  • 로드셀
  • 점프선

먼저 아두이노를 준비합니다.

여기서 아두이노 우노/나노/미니 모두 성능이 비슷하니 아무거나 사용하셔도 상관 없습니다.

저는 빵판(브레드 보드)에 연결하기 쉬운 나노를 선호합니다.

 

다음은 HX711 보드입니다. 로드셀 센서 사용시 항상 따라다니는 녀석인데, 측정된 값을 뻥튀기 해주는 엠프 입니다.

 

아래는 HX 711보드와 로드셀을 묶어파네요.

 

HY 로드셀 10KG 무게센서 HX711AD모듈

COUPANG

www.coupang.com

 

마지막으로 로드셀을 준비해 줍니다.

로드셀은 여러가지 종류가 있습니다. 원형도 있고, 막대형도 있습니다.

막대형은 위의 링크가 막대형이고, 아래는 단추형 비슷하게 저렴하게 나온게 있습니다. 3선식이네요.

본인이 원하시는 형태로 구매하시면 됩니다.

 

무게압력측정 로드셀 50kg Weight Scales LoadCell

COUPANG

www.coupang.com

 

다만 로드셀 마다 한계 중량이 정해져있습니다.

예를들면 내 로켓의 예상 추력이 50kg이면 50kg보다 큰 중량을 측정할 수 있는 로드셀을 사용하시면 됩니다.

로켓의 예상 추력은 시뮬레이션을 돌려봐야합니다. 그게 아니라면 연료 무게에 따른 대략적인 추력을 예상해볼수 있습니다.

 

참고로 KNSB 400g으로 만들었던 로켓은 추력이 50~60kgf 나왔습니다.

 

자 여기서 kgf 라는 단위를 사용했습니다. 보통 초교나 중학생때 배우는 개념인데, 킬로그램-힘 이라 읽습니다.

원래 무게의 뜻은 질량과 중력가속도의 곱입니다. 하지만 지구상에 있으니, 50kg나 50kgf나 동일하게 쓰이는 경우가 많습니다. 뉴턴으로 환산하면 1kgf = 1kg X 9.81m/s^2 = 9.81N 입니다.

 

 

그러니 50~60kgf면 대략 10을 곱한 500~600N이라고 표현할 수 있습니다.

 

그리고 연료 50g을 사용했을때는 10kgf 도 안나왔으니 본인 연료량에 맞게, 10~50kg사이 로드셀을 사용하시면 됩니다.

 

아두이노와 로드셀 연결 방법

다음은 로드셀, HX711, 아두이노와 연결 방법입니다.

아래와 같은 로드셀은 4선식이 대부분입니다.

 

로드셀 구매 페이지에 어떤 선이 무엇인지 보통 나와있습니다.

 

저의 경우를 말씀드리겠습니다.

로드셀의 검정색, 빨강색 선은 -(GND), +(5V) 입니다.

그다음 흰색 초록색 같은 경우는 HX711의 A+/A-에 연결시키고, (값이 이상하게 나오면 둘이 교차연결해줍니다)

B+/B-는 비워둡니다. 

 

다음 HX711에서 아두이노로 가는 길목은 GND, VCC, DT, SCK가 있고, 다음과 같이 연결해줍니다.

GND - 아두이노의 GND

VCC - 아두이노의 5V

DT - 디지털 5번 핀

SCK - 디지털 4번 핀

 

코딩 방법

#include "HX711.h"

// HX711 circuit wiring
const int LOADCELL_DOUT_PIN = 5;  // 디지털핀 5번
const int LOADCELL_SCK_PIN = 4;   // 디지털핀 4번

HX711 scale;
float calibration_factor = -329; //1kg 추로 맞춰가며 조절해봅니다.
float Weight;
float zero = 500 //아무것도 올려놓지 않았을때 0이 나오려면, 이 숫자를 바꿉니다.

void setup() {
  Serial.begin(115200);
  scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
}

void loop() {
  scale.set_scale(calibration_factor);    
  Weight=scale.get_units()-zero;
  Serial.println(Weight);
  delay(10); //10ms 0.01초에 한번씩 측정.
}

 

이렇게 간단히 입력하면 됩니다.

 

 

툴 창에 시리얼 모니터와 시리얼 플로터가 있습니다.

시리얼 플로터로 그래프를 표현하는 방법. 하지만 데이터 저장이 불가능하다.

시리얼 플로터는 시간에 따른 값들을 볼 수 있어 바로 그래프로 표현할 수 있지만, 데이터를 저장하기 쉽지 않습니다.

시리얼 모니터로 보면 값이 뜨고, 간단하게 엑셀로 옮겨오는 방법은 다음과 같습니다.

 

간단하게 엑셀로 옮겨 그래프 그리는 방법

1. 시리얼 모니터를 띄운 상태로 추력테스트를 진행한다.

2. 시리얼 모니터 값을 긁어 엑셀로 붙여넣기를 한다.

3. 엑셀 상에서 '데이터'탭-'텍스트나누기'를 통해 문자 '>'로 나눠주면 시간과 데이터가 나눠진다.

4. 그래프를 작성한다.

 

영점 조정은 엑셀로 간단히 하실수 있으리라 생각됩니다..

반응형