아두이노

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


아두이노
아두이노

1. 푸시버튼을 이용한 서보모터 제어

페이지 정보

작성자 관리자 댓글 1건 조회 4,212회 작성일 18-10-28 13:52

본문

1. 푸시버튼을 이용한 서보모터 제어

 

서보모터(Servo Motor)는 모터와 제어구동보드를 포함하는 것으로 모터 자체만으로 서보모터라고 하지 않는다. 즉, 서보모터는 모터의 구동시스템까지 포함하는 것이다.

주로 CCTV 카메라, 캠코더, DVD, 프린터 등에서 모터처럼 명령에 따라 정확한 위치와 속도를 제어할 수 있는 모터를 말한다.

푸시버튼은 디지털 핀 3번에 연결, 서보모터는 디지털 핀 9번에 연결한다.

푸시버튼을 눌러서 동작시킬 경우 서보모터의 회전각도를 0 ~ 180으로 이동시키는 제어을 할 수 있다.


그림입니다.
원본 그림의 이름: CLP000043086325.bmp
원본 그림의 크기: 가로 473pixel, 세로 339pixel

PWM을 사용하여 서보 모터를 제어할 수 있다. 서보모터의 펄스폭은 1ms~2ms의 범위를 가지며, 1ms일 때 0도, 2ms 일 때 180도를 나타낸다. 그러므로 1.25ms일 때 45도, 1.5ms일때 90도 라는 것을 유추할 수 있다.

위와 같은 방법보다 servo 라이브러리를 사용하면 좀더 편하게 서보모터를 제어할 수 있다.


(1) 회로도 구성

그림입니다.
원본 그림의 이름: CLP00003e44144f.bmp
원본 그림의 크기: 가로 466pixel, 세로 577pixel


(2) 소스 코딩


digitalRead(pin)

지정된 디지털 핀에서 HIGH 또는 LOG값을 읽는다.

pin : 읽어 내고 싶은 디지털 핀의 번호


그림입니다.
원본 그림의 이름: CLP00003e440001.bmp
원본 그림의 크기: 가로 440pixel, 세로 580pixel


(3) 실행결과


시뮬레이션을 시작하면, 버튼을 눌렀을 때, 시리얼모니터에서 아래와 같이 각도가 출력된다.


그림입니다.
원본 그림의 이름: CLP00003e440002.bmp
원본 그림의 크기: 가로 429pixel, 세로 113pixel


서보모터가 회전하는 것을 확인할 수 있다.


그림입니다.
원본 그림의 이름: CLP00003e440003.bmp
원본 그림의 크기: 가로 396pixel, 세로 257pixel

댓글목록

관리자님의 댓글

관리자 작성일

#include <Servo.h>
int pos = 0; // 서보모터의 위치 값 변수 선언
int button = 2;
Servo servo_9 ; // 서보모터 선언

void setup()
{
  servo_9.attach(9);
  // 서보모터를 9번 핀으로 선언
  pinMode(button, INPUT);
  Serial.begin(9600);
}

void loop()
{
  if(digitalRead(button) == HIGH) {
    for(pos = 0; pos <= 100; pos += 1) {
      servo_9.write(pos);
      // 서보모터를 pos값 만큼 위치이동
      Serial.print(pos);
      Serial.print(" , ");
      delay(15);
    }
    Serial.println("");
    for(pos=100; pos >= 0 ; pos -= 1) {
      servo_9.write(pos);
      // 서보모터를 pos값 만큼 위치이동
      Serial.print(pos);
      Serial.print(" , ");
      delay(15);
    }
  } else {
    servo_9.write(0); // 서보모터를 0위치 이동
  }
}


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

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

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