정보나눔

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

서보모터와 스위치를 이용한 로봇팔 제어에 대해 질문있습니당!!!!!!!!!!!!!!!!!!1
copfee | 2018-06-07

1. 프로젝트 사용한 보드 종류

아두이노 UNO

 

 

2. 사용한 개발 프로그램명

아두이노 IDE

 

 

3. 사용한 센서 모델명

 

 

 

4. 연결한 회로 설명 (또는 이미지)

 

 

5. 소스코드 (주석 필수)

Servo motor3;
Servo motor4;
Servo motor5;
const int inputPin1 = 6;
const int inputPin2 = 7;
 
void setup() {
Serial.begin(9600);
motor3.attach(3);
motor4.attach(4);
motor5.attach(5);
motor3.write(90);
motor4.write(90);
motor5.write(90);
pinMode(inputPin1, INPUT_PULLUP);
pinMode(inputPin2, INPUT_PULLUP);
}
 
void loop() {
 
motor5.write(180);
delay(500);
while()
 
}

 

6. 문제점 및 에러 내용

  서보모터와 스위치를 이용해 로봇팔을 만들고 싶은데요, 스위치를 이용해 스위치가 눌러진다면 팔을 그랩해서 장애물을 잡고 올라가는 동작을 구현하고 싶습니다. (Youtube에 monkeybot 3 servo을 검색하면 나오는데 그 모형에서 손에 스위치를 추가한 모형입니다.) motor5라는 오른팔을 이용해 180도까지 움직였다가 다시 반대 방향으로 움직이면서 팔에 달려있는 스위치가 눌러진다면 특정 동작을 수행하고 안눌러지면 motor4를 다시 구동시키면서 더 높게 팔을 들어 장애물이 있는지를 감지하고 싶습니다. 그런데 서보모터가 움직이다가 스위치 입력을 받을 때 동작을 정지하게 만들 수가 있나요...? if, for, whie, detach(?) 중 하나를 써서 만들 수 있을 것 같긴한데 아무리 고민해도 답이 나오지 않는 것 같습니다. 단순 motor5.write(180);delay(500);motor5.write(0);if(inputPin1){};으로 해봤는데 이 경우에는 if로 빠지지가 않는 것 같습니다.

 

프로필사진

kocoafabeditor 2018-06-11 09:01:24

안녕하세요. 코코아팹입니다.

 

아래 링크는 아두이노에서 인터럽트를 사용하는 방법입니다. 버튼이 눌렀을 때 바로 다른 동작을 하도록 만들 수 있습니다. 

 

https://kocoafab.cc/tutorial/view/634

 

링크를 확인해보시고 올려주신 코드에 반영해보시면 좋을 것 같습니다.

이전글   |    아두이노 SD모듈 블루투스 파일 전송 2018-06-07
다음글   |    아두이노 트린켓 에러 질문 2018-06-08