A PHP Error was encountered

Severity: Notice

Message: Undefined index: HTTP_ACCEPT_LANGUAGE

Filename: core/KF_Controller.php

Line Number: 155

서보모터 각도 제어하기

초급 예제

누구나 쉽게 따라해볼 수 있는 쉬운 예제들입니다. 가볍게 도전~!

서보모터 각도 제어하기

2014-08-05 15:42:05

개요




아두이노는  다양한 응용 분야에 맞춰서 여러가지 모터를 사용할 수 있습니다.
모터의 종류에는 일반적으로 많이 쓰이는 DC 모터(직류 모터), 0-180도 혹은 360 까지 각도제어가 가능한 서보 모터,
일정한 각도와 힘으로 움직이는 스텝 모터 등이 있으며 이밖에도 토크와 구동전압, 작동 방식에 따른 다양한 모터가 있습니다.

그 중 서보모터는 각도를 정밀하게 제어할수 있는 장점을 이용하여
로보틱스 분야에서 물체의 관절부분에 많이 사용되고 있습니다.

 
먼저 서보 모터에 대해 알아보고자 아두이노와 서보모터를 이용한 프로젝트를 살펴보겠습니다.

 
출처 : 로봇 거미 - letsmakerobots -se.gu.a.ro

서보모터를 이용하여 거미의 움직임을 형상화한 거미 로봇을 만들수 도 있고,




출처 : 마이크로 컨트롤 RC 카 - cuyamaca.edu

움직이는 자동차의 앞바퀴 부분에 서보 모터를 적용하여 컨트롤러로 방향을 전환 할수 있습니다.

이 예제에서는 가변저항기가 돌아간 각도(저항값)에 따라 서보의 각도를 조절해 보겠습니다.


미리보기 동영상

시작전 개념 이해하기

부품목록

본 학습에는 총 5종류의 부품이 필요합니다.

NO 부품명 수량 상세설명
1 아두이노 우노 R3 1 아두이노
2 서보모터 1 서보모터
3 가변저항 1 저항
4 브레드보드 1 브레드보드
5 점퍼케이블 6 점퍼케이블

부품명 아두이노 우노 R3 서모 모터 기변 저항 브레드보드 점퍼케이블
파 트 x1 X1 X1 X1 X6

하드웨어 Making

회로도



브레드보드 레이아웃

소프트웨어 Coding

아래의 코드를 아두이노에 업로드 합니다.

/* 출처 : www.arduino.cc */
#include <Servo.h> //서보 라이브러리를 불러옵니다.

const int potentiometerPin = 0;//가변저항기에 연결한 아날로그 핀의 번호를 설정합니다.

Servo servo;

void setup() {

servo.attach(9); // 서보를 사용하는 핀으로 디지털 핀9번을 설정합니다.

}

void loop(){

int value = analogRead(potentiometerPin); //가변저항의 값을 읽어들입니다.

int angle = map(value,0,1023,0,179);//읽어 들인 값을 0에서 179까지 변환 합니다.

servo.write(angle); //서보의 각도를 설정합니다.

delay(15); // 서보가 지정한 각도까지 움직이는 동안 대기

}

소프트웨어 설명

int angle = map(value,0,1023,0,179);//읽어 들인 값을 0에서 179까지 변환 합니다.

map함수는  map(value, 현재 최소값, 현재 최대값, 변경하고자 하는 최소 값, 변경하고자 하는 최대값)으로 구성되며,
아나로그 센서에서 읽어 온 값을 처리할때에 유용하게 사용됩니다.
이 예제 에서는 회전 각도가 Servo 라이브러리에서 지원하는 범위보다 작은 서보가 있을수 있는데,
사용 중인 서보가 맨 끝 값에 도달해서 떨림 현상을 보일 경우 그 현상이 사라질 때까지  map 함수의 출력 범위를 축소해 주시면 됩니다.
처음 시작점에서 떨림 현상을 보이는 경우에는 반대로 출력 범위 시작값을 높여줍니다.

기술문서

  • 부품목록
  • 회로도
  • 브레드 보드 레이아웃
  • 소스 코드

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

아두이노,초급,서보모터,가변저항,각도제어