정보나눔

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

무게변화에따른 서보모터 제어 코딩 질문입니다
GGYU | 2021-04-26

로드셀을 이용하여 무게측정을 한뒤, 측정한 무게가 125kg이 넘어간다면 서보모터를 중지하도록 만들고싶습니다..

아두이노를 전혀 모르는 상태라 아래와 같이 작성하여 무게측정은 성공하였습니다.

 

#include "HX711.h"

 

#define calibration_factor -25000.0

 

 

#define LOADCELL_DOUT_PIN 2

#define LOADCELL_SCK_PIN 3

 

HX711 scale;

 

int nValueCount = 10;

float fValue[10];

 

 

void setup()

{

Serial.begin(9600);

 

Serial.println("HX711 kg demo");

 

 

scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);

scale.set_scale(calibration_factor);

scale.tare();

 

Serial.println("Readings:");

}

 

void loop()

{

{

Serial.print("Reading: ");

 

 

float fValueTemp = 0.0;

float fValueSum = 0.0;

 

 

fValueTemp = scale.get_units();

fValueSum = fValueTemp;

 

int i;

for(i = 0; i < nValueCount; i = i + 1)

{

if(i > 0)

{

 

fValueSum = fValueSum + fValue[i];

 

fValue[i - 1] = fValue[i];

}

}

 

fValue[nValueCount - 1] = fValueTemp;

 

Serial.print((fValueSum / nValueCount), 1);

 

Serial.print(" kg");

Serial.println();

}

delay(100);

}

 

무게가 125kg이상이면 서보모터를 ON/OFF되게 만들고 싶은데 

#include <Servo.h>
 
Servo servo;
int value = 0;
 
void setup() {
  servo.attach(7);
  Serial.begin(9600);
}
 
void loop() {
  if(Serial.available())
  {
    char in_data;
    in_data = Serial.read();
    if(in_data == '1')
    {
    value += 180;
    }
    if(in_data == '0')
    {
      servo.detach();
    }
    
    servo.write(value);
    delay(500);
  }
}

 

위 처럼 작성해보니 1을 입력하면 작동, 0을 입력하면 중지됩니다.

 

두 파일을 한꺼번에 작성하면 될까요 아니면 무게측정에 작성된 파일에 서보모터관련 코드를 추가시켜야할까요..

추가한다면 어떤방식으로 해야할지 알려주실 수 있을까요..?

이전글   |    정말 초보입니다. 질문이요.. 2021-04-17
다음글   |    로드셀 알람시계 부품 질문 2021-04-27