BASIC4MCU | 질문게시판 | 서보모터가 찡찡 거리면서 오작동합니다.
페이지 정보
작성자 비공개 작성일2018-08-26 14:46 조회11,536회 댓글0건본문
서보모터 4개로 작동되는 집게팔 아두이노 우노 프로그램을 만들고 있습니다.
그런데요 아래 프로그램 대로 하면 되기는 하는데 엉망으로 됩니다.
블루투스 앱에서 "L"를 누르면 그거 하나만 작동해야 하는데 엄한것 까지 찔끔 찔끔 움직입니다.
원인이 뭘까요???
#include <Servo.h>
#include <SoftwareSerial.h>
#define LASER 13
SoftwareSerial btSerial(2, 3); //RX, TX
Servo xServo;
Servo yServo;
Servo uServo;
Servo vServo;
int posx = 90;
int posy = 90;
int posu = 90;
int posv = 90;
void setup() {
pinMode(LASER, OUTPUT);
xServo.attach(9);
yServo.attach(10);
uServo.attach(11);
vServo.attach(12);
xServo.write(90);
yServo.write(90);
uServo.write(90);
vServo.write(90);
btSerial.begin(9600);
}
void loop() {
char c = btSerial.read();
if (c=='a') {
digitalWrite(LASER, HIGH);
}
if (c=='b') {
digitalWrite(LASER, LOW);
}
if (c=='L') {
if(posx<170){posx++;} // x축 각도 오른쪽으로 증가
else if(posx == 170){}// 서보모터 각도가 180일 경우 동작 안함(최대 각도 180도)
}
if (c=='R') {
if(posx>10){posx--;} // x축 각도 왼쪽으로 증가
else if(posx = 10){} // 서보모터 각도가 0도일 경우 동작 안함(최소 각도 0도)
}
if (c=='U') {
if(posy<170){posy++;} // x축 각도 오른쪽으로 증가
else if(posx == 170){}// 서보모터 각도가 180일 경우 동작 안함(최대 각도 180도)
}
if (c=='D') {
if(posy>10){posy--;} // x축 각도 왼쪽으로 증가
else if(posx = 10){} // 서보모터 각도가 0도일 경우 동작 안함(최소 각도 0도)
}
if (c=='F') {
if(posu<170){posu++;} // x축 각도 오른쪽으로 증가
else if(posx == 170){}// 서보모터 각도가 180일 경우 동작 안함(최대 각도 180도)
}
if (c=='S') {
if(posu>10){posu--;} // x축 각도 왼쪽으로 증가
else if(posx = 10){} // 서보모터 각도가 0도일 경우 동작 안함(최소 각도 0도)
}
if (c=='E') {
if(posv<170){posv++;} // x축 각도 오른쪽으로 증가
else if(posx == 170){}// 서보모터 각도가 180일 경우 동작 안함(최대 각도 180도)
}
if (c=='C') {
if(posv>10){posv--;} // x축 각도 왼쪽으로 증가
else if(posx = 10){} // 서보모터 각도가 0도일 경우 동작 안함(최소 각도 0도)
}
xServo.write(posx); // 모니터링 목적의 씨리얼 출력함수
yServo.write(posy); // 모니터링 목적의 씨리얼 출력함수
uServo.write(posu); // 모니터링 목적의 씨리얼 출력함수
vServo.write(posv); // 모니터링 목적의 씨리얼 출력함수
delay(50);
}
댓글 0
조회수 11,536등록된 댓글이 없습니다.