압력센서를 이용해서 서보모터 제어관련 문의드립니다.

고기 2018-10-10 (수) 21:44 5년전 3394  

압력센서의 데이터의 이용해서 서보모터를 반복하여 움직이는 소스를 만들고 싶은데, 원하는 대로 되지 않아 문의드립니다.

10~50의 압력을 받으면 90도, -90도로 반복하여 움직이고, 70 이상의 압력을 받으면 180도, -180도로 반복하여 움직이고 싶습니다.

하다가 어려움이 있어서 문의드립니다.

 

#include <Servo.h>

 

Servo myservo;

 

int sensor =A2;

int servo = 11 ;

int pos = 0;       //servo가 0도로 포지션을 잡음.

 

void setup() {

  // put your setup code here, to run once:

Serial.begin(9600);

myservo.attach(servo);

}

 

void loop() {

  // put your main code here, to run repeatedly:

int sensorValue = analogRead(11);

float voltage = sensorValue*(5.0/1023.0);     //sensor 세팅

Serial.println(voltage);

 

if (50 > voltage > 10) {                         // sensor가 10~50의 압력을 받음

  for (pos = 0; pos <= 90 ;pos+=1){          // servo가 90도로 움직임

    myservo.write(pos);

    for (pos=90; pos>=0; pos-=1);           // servo가 다시 90도로 되돌아감

    myservo.write(pos);

    

  if (voltage > 100) {                         // sensor가 100도 이상의 압력을 받음.

  for (pos = 0; pos <= 180 ;pos+=1){      // servo가 180도로 움직임.

    myservo.write(pos);

    for (pos=180; pos>=0; pos-=1);       // servo가 다시 180도로 되돌아감

    myservo.write(pos); 

  }

 

  }

  }  }}

메카리워즈 Image Map

메이커 2018-10-11 (목) 15:10 5년전
#include <Servo.h>
Servo myservo;
int sensor =A0;
int servopin = 11;
int pos = 0;      //servo가 0도로 포지션을 잡음.

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
myservo.attach(servopin);
}

void loop() {
  // put your main code here, to run repeatedly:
int sensorValue = analogRead(sensor);
float voltage = sensorValue*(5.0/1023.0);    //sensor 세팅
Serial.println(voltage);
  if (voltage >10 && voltage < 50) {                        // sensor가 10~50의 압력을 받음
  for (pos = 0; pos <= 90 ;pos+=1)          // servo가 90도로 움직임
    myservo.write(pos);
    for (pos=90; pos>=0; pos-=1);          // servo가 다시 90도로 되돌아감
    myservo.write(pos);
  }
  else if (voltage > 100) {                        // sensor가 100도 이상의 압력을 받음.
  for (pos = 0; pos <= 180 ;pos+=1)      // servo가 180도로 움직임.
    myservo.write(pos);
    for (pos=180; pos>=0; pos-=1)      // servo가 다시 180도로 되돌아감
    myservo.write(pos);
  }

  }
주소

모바일 버전으로 보기