아두이노

본문 바로가기
사이트 내 전체검색


아두이노
아두이노

2. 2개의 푸시버튼을 이용하여 서보모터 제어하기

페이지 정보

작성자 관리자 댓글 1건 조회 3,208회 작성일 18-10-28 15:53

본문

2. 2개의 푸시버튼을 이용하여 서보모터 제어하기

 

푸시버튼1을 눌렀을 경우에 90으로 이동하고, 푸시버튼2를 눌렸을 경우 180으로 이동한다. 만약 푸시버튼을 놓을 경우 다시 0으로 이동한다.

푸시퍼튼1은 디지털 핀 2번, 푸시버튼2의 경우 디지털 핀 6번에 연결하고, 서보모터는 디지털 핀 9번에 연결한다.


(1) 회로도 구성


그림입니다.
원본 그림의 이름: CLP000029b832a7.bmp
원본 그림의 크기: 가로 544pixel, 세로 621pixel




(2) 소스코딩


그림입니다.
원본 그림의 이름: CLP000029b80001.bmp
원본 그림의 크기: 가로 470pixel, 세로 427pixel

그림입니다.
원본 그림의 이름: CLP000029b80002.bmp
원본 그림의 크기: 가로 471pixel, 세로 647pixel


(3) 실행 결과


실행하고, 버튼1을 눌렀을 때 90도 회전하고, 버튼2를 눌렀을 때 180도 회전을 하게 된다.


그림입니다.
원본 그림의 이름: CLP000029b80003.bmp
원본 그림의 크기: 가로 344pixel, 세로 275pixel


시리얼모니터를 통해 회전할 때의 값을 출력하여 결과를 확인할 수 있다.



댓글목록

관리자님의 댓글

관리자 작성일

#include <Servo.h>
int pos = 0; // 서보모터의 위치 값 변수 선언
int button = 2;
int button_2 = 6;
Servo servo_9 ; // 서보모터 선언
int state = 0; // 버튼의 상태 값 변수 선언
void setup()
{
  servo_9.attach(9);  // 서보모터를 9번 핀으로 선언
  pinMode(button, INPUT);
  pinMode(button_2, INPUT);
  Serial.begin(9600);
}

void loop()
{
  int ipush = digitalRead(button);
  int ipush_2 = digitalRead(button_2);
 
  if(ipush == HIGH) {
    state = 1;
  } else if(ipush_2 == HIGH) {
    state = 2;
  } else {
    state = 0;
  }
  switch(state) {
    case 0 :
      servo_9.write(0);
      break;
    case 1 :
      for(pos = 0; pos <= 90; pos += 1) {
        servo_9.write(pos);
        // 서보모터를 pos값 만큼 위치이동
        Serial.print(pos);
        Serial.print(" , ");
        delay(15);
      }
      Serial.println("");
      for(pos=90; pos >= 0 ; pos -= 1) {
        servo_9.write(pos);
        Serial.print(pos);
        Serial.print(" , ");
        delay(15);
      }
      break;
  case 2 :
      for(pos = 0; pos <= 180; pos += 1) {
        servo_9.write(pos);
        Serial.print(pos);
        Serial.print(" , ");
        delay(15);
      }
      Serial.println("");
      for(pos=180; pos >= 0 ; pos -= 1) {
        servo_9.write(pos);
        Serial.print(pos);
        Serial.print(" , ");
        delay(15);
      }
      break;
    defalut :
      servo_9.write(0);
      break;
  }
}


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.