안녕하세요? 오늘은 서보모터와 또 그것을 아두이노에 활용해보는 것에 대해서 얘기해보도록 하겠습니다.

모터란 전기에너지를 동적에너지로 바꾸어주는 장치입니다.

즉 전원에 연결하면 어떠한 움직임을 만들어줄 수 있게됩니다.

그래서 아두이노 프로젝트나, 또 로봇이나 기계에 필수적으로 포함되어 있는 부품입니다.

서보모터가 어떠한 기능을 하는지 간단히 살펴보고 이것을 아두이노에 활용해보도록 하겠습니다.

차례

1. 서보모터란?

2. 아두이노와 서보모터


1. 서보모터란 ?

모터의 종류는 크게 세가지가 있습니다.

DC모터, 스테퍼 모터, 서보모터

DC모터는 고속회전용 모터입니다. 전기가 흐르게되면 고속으로 회전합니다.

주위에서는 전동공구가 같은 것에서 볼 수 있습니다.

스테퍼 모터는 모터희 회전 방향, 속도, 회전각을 제어할 수 있습니다.

고속으로 회전하지는 않지만 제어가 많이필요한 것에 활용될 수 있습니다.

3D프린터는 x,y,z축에 정확히 이동해야하기때문에 이 모터를 사용합니다.

마지막으로 서보모터는 PWM 신호를 이용하여 모터 팔의 회전각을 제어할 수 있습니다.

서보모터는 사용법도 쉽고 정확한 위치제어가 가능해서 처음 접하는 사람에게 좋습니다.

2. 아두이노와 서보모터

위 사진들을 참고해서 다음과 같이 연결해주시면 됩니다.

빨간선은 5V에 연결하고 갈색선은 GND, 오렌지색선은 원하는 데이터핀에 연결하시면 됩니다.

그러면 이제 간단한 예제를 작성해보도록 하겠습니다.

#include <Servo.h> // 라이브러리 추가

Servo SV; // 서보모터 선언


void setup() {

  SV.attach(13); // 서보모터 초기화

}


void loop() {

  for(int i=0; i<181; i++) {

  SV.write(i);

  delay(10);

  }

  for(int i=0; i<181; i++) {

  SV.write(180-i);

  delay(10);

  }

다음과 같이 작성했습니다.

아두이노 자체 라이브러리에 서보모터와 관련된 함수를 포함한 라이브러리가 있습니다.

그래서 다음과 같이 서보모터 라이브러리를 추가시켜줍니다.

그런 다음 SV라는 서보모터 변수를 선언해줍니다.

그리고 데이터를 출력하고자 하는 핀 번호를 초기화합니다.

SV.write() 함수는 서보모터의 위치를 제어할 수 있는 함수입니다.

원하는 각도를 넣으면 그 각도로 서보모터를 위치시킬 수 있습니다.

loop() 부분을 보면 반복문을 통하여 서보모터 각 위치를 0도 부터 180도

그리고 다시 180도 부터 0도로 회전하게 설정하였습니다.

서보모터는 라이브러리를 이용하면 쉽게 활용할 수 있습니다.

아두이노의 다양한 프로젝트에서 모터는 거의 필수적으로 사용됩니다.

서보모터와 관련된 내장함수를 잘 숙지하고 계신다면 아두이노 프로젝트를 하실 때 아주 유용할 것 입니다.

감사합니다.

+ Recent posts