?>

Hard Copy World

HCW

Q&A

Home > Forum >

Q&A

아두이노 무게측정을 통한 모터구동 질문

페이지 정보

작성자 장성병새 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일15-11-17 22:56 조회2,033회 댓글2건

본문

제가 지금 hx711과 서보모터를 이용해서 800파운드 이상일때 모터가 120도 회전했다가 원상태로 돌아가는 기능을 구현하려하는데요 중간에 오류가나는데 오류가어떤거인지 잘 모르겠어요 ㅠㅠ

http://www.hardcopyworld.com/ngine/aduino/index.php/archives/1763

위 페이지에서 주신 https://github.com/bogde/HX711 이 라이브러리를 추가해서 사용했는데 여기서 무게가 입력된 함수가 어떤건가요? 저는 set.scale()에 저장되었다 생각해서

#include "HX711.h"
#include <Servo.h>

#define calibration_factor -7050.0 //This value is obtained using the SparkFun_HX711_Calibration sketch

#define DOUT  3
#define CLK  2

HX711 scale(DOUT, CLK);

Servo myservo;
int pos = 0;

void setup() {
  Serial.begin(9600);
  Serial.println("HX711 scale demo");

  scale.set_scale(calibration_factor); //This value is obtained by using the SparkFun_HX711_Calibration sketch
  scale.tare();   //Assuming there is no weight on the scale at start up, reset the scale to 0

  Serial.println("Readings:");
  myservo.attach(9);
}

void loop() {
  Serial.print("Reading: ");
  Serial.print(scale.get_units(), 1); //scale.get_units() returns a float
  Serial.print(" lbs"); //You can change this to kg but you'll need to refactor the calibration_factor
  Serial.println();
  if(scale.get_units()>800.0){
    for(pos = 0; pos < 120; pos += 1){
      myservo.write(pos);
      delay(15);
    }
    pos = 0;
    myservo.write(pos);
    delay(15);
  }
  delay(1000);
}

이런식으로 구현해봤는데 잘 안되네요...ㅠㅠ

어떤게 문제인지 알려주시면 감사하겠습니다

댓글목록

장성병새님의 댓글

장성병새 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일

제가 무게값이 scale.get_units() 에 저장되었다고 생각하고 이를 이용해서 조건문을 넣어줬는데 이쪽에서 오류가 있던걸까요..??

최고관리자님의 댓글

최고관리자 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일

get_units(5) 함수 설명이 다음과 같네요
// print the average of 5 readings from the ADC minus tare weight, divided
// by the SCALE parameter set with set_scale
즉 5회 측정 평균값에 0보정을 하고 set_scale로 다시 스케일링 된 값이 나온다고 합니다. 아마도 원하는 무게값을 넘겨주는 함수가 맞는것 같습니다. 값이 이상하다면.. calibration_factor 의 문제가 아닐까 합니다. 혹 단위가 파운드로 되어 있진 않은지도 확인해보세요.

아래 라이브러리에서 제공하는 예제 참고하세요.
https://github.com/bogde/HX711/blob/master/examples/HX711Serial/HX711Serial.ino