BASIC4MCU | 질문게시판 | 서보모터제어질문좀드려요
페이지 정보
작성자 현이꽃 작성일2019-06-11 21:31 조회282회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=9340
본문
#include <servo.h>
Servo Motor_H; // 하단 서보모터 정의
Servo Motor_V; // 상단 서보모터 정의
int H = 0;
int V = 0;
int posx = 90; // 하단 서보모터 각도 초기값
int posy = 90; // 상단 서보모터 각도 초기값
void setup()
{
Serial.begin(9600);
Motor_H.attach(5); // 하단 서보모터 5번핀 연결
Motor_V.attach(6); // 상단 서보모터 6번핀 연결
Motor_H.write(90);
Motor_V.write(90);
}
void loop()
{
int x, y, sumx, sumy;
int i, j;
sumx = 0;
sumy = 0;
for(i=0;i<20;i++)
{
x = analogRead(A0);
y = analogRead(A1);
sumx += x;
sumy += y;
}
x = sumx / 20;
y = sumy / 20;
if(x <410)
{
if(posx<180){posx++;} // x축 각도 오른쪽으로 증가
else if(posx == 180){}// 서보모터 각도가 180일 경우 동작 안함(최대 각도 180도)
delay(20);}
else if(x > 500) // 조이스틱이 x축 왼쪽으로 움직일 때
{
if(posx>0){posx--;} // x축 각도 왼쪽으로 증가
else if(posx = 0){} // 서보모터 각도가 0도일 경우 동작 안함(최소 각도 0도)
delay(20 );}
if(y < 470) // 조이스틱이 y축 위쪽으로 움직일 때
{
if(posy<180){posy++;} // y축 각도 위쪽으로 증가
else if(posy==180){} // 서보모터 각도가 180일 경우 동작 안함
delay(50);}
else if(y > 540) // 조이스틱이 y축 아래쪽으로 움직일 때
{
if(posy>0){posy--;} // y축 각도 아래쪽으로 증가
else if(posy==0){} // 서보모터 각도가 0일 경우 동작 안함
delay(50); }
Motor_H.write(posx);
Motor_V.write(posy);
Serial.print(x);
Serial.print(" ");
Serial.println(y);
delay(10);
}
현제 위코드를 사용 하고있는데요 x 값쪽 서보모터를 딜레이를
2번주어 속도 조절을 할수있을까여?
예를들어 조이스틱 값이 410~200, 710~900 딜레이 50
0~100, 950~1024은 딜레이 20 이런식으로 될까요?
댓글 0
조회수 282등록된 댓글이 없습니다.