아두이노에 서보모터를 활용해보자
안녕하세요? 오늘은 서보모터와 또 그것을 아두이노에 활용해보는 것에 대해서 얘기해보도록 하겠습니다.
모터란 전기에너지를 동적에너지로 바꾸어주는 장치입니다.
즉 전원에 연결하면 어떠한 움직임을 만들어줄 수 있게됩니다.
그래서 아두이노 프로젝트나, 또 로봇이나 기계에 필수적으로 포함되어 있는 부품입니다.
서보모터가 어떠한 기능을 하는지 간단히 살펴보고 이것을 아두이노에 활용해보도록 하겠습니다.
차례
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도로 회전하게 설정하였습니다.
서보모터는 라이브러리를 이용하면 쉽게 활용할 수 있습니다.
아두이노의 다양한 프로젝트에서 모터는 거의 필수적으로 사용됩니다.
서보모터와 관련된 내장함수를 잘 숙지하고 계신다면 아두이노 프로젝트를 하실 때 아주 유용할 것 입니다.
감사합니다.