서보 모터(servo motor)를 아두이노에 붙여서 작동하는 가이드
▶ 이 가이드를 따라하면,
- servo motor를 아두이노 UNO와 연결하여 자유롭게 제어할 수 있다
- 아두이노 기본 내장 라이브러리인 servo의 사용법을 알 수 있다.
▶ 부품 설명 및 회로 구성
소형 서보 모터는 특정 위치에 고정시킨 후 0도부터 180도까지 모터 회전 각을 다양하게 제어할 수 있는 모터로, R/C 헬기 제어에도 많이 사용된다. 이 모터는 DC모터(단순히 +/- 연결 및 전력 량에 따라 구동되는 모터)와 스텝모터(미세하게 앞뒤 방향으로 얼만큼 회전각을 주어 움직일지 제어하는 모터) 두가지와 함께, 제어를 위한 3대 모터로 간주된다. 세가지 모터의 쓰임이 다른데, 스텝모터는 시계/반시계 방향으로 얼만큼 회전할지를 주어 정확히 회전하는데 반하여(예컨데 3바퀴 반을 매우 정확히 회전), 서보모터는 대부분 반바퀴 내에서 절대 각도를 지정하여 움직인다.
실제 구동해보면 무슨 이야기인지 금방 알 수 있다.
<Arduino UNO + 소형 서보 모터 / 5V(빨강), GND(검정), 데이터핀 9번(기타) 연결>
주의할 점은 상기 예제에서는 소형 서보 모터를 UNO에 직접 연결하는데, 10$이상의 중형 서보 모터들은 별도 전원이 필요하다. 전원이 부족하면 작동하지 않는다.
▶ 소스 코드 입력 및 구동
별도 라이브러리는 필요없고, 아두이도 스케치(sketch)에 내장된Servo 라이브러리를 사용하자. 아래 소스코드를 입력한 후 구동한다. 하기 소스는 0도부터 180도까지 10도 단위로 정방향 이동하다가, 다시 역방향으로 이동하는 예이다.
GitHub 원본 소스 링크 / https://github.com/bbangpan/bbangpan.com/blob/master/neibc_servo/neibc_servo.ino
------------------------------------------------------------------------------------------------------------
/* Originally posted on www.bbangpan.com
Program Description: Servo motor test code(angle change)
Needed library : Servo(Arduino's default library)
Tested on : Arduino 1.0.6, Arduino UNO R3, Small size servo motor
Copyright (c) 2015 www.bbangpan.com. All right reserved.
This program can be used for any non-commercial purpose freely. */
#include <Servo.h>
int servoPin = 9;
Servo servo;
int angle = 0; // servo position in degrees
void setup()
{
servo.attach(servoPin);
Serial.begin(9600);
}
void loop()
{
// 0 to 180 degrees
for(angle = 0; angle < 180; angle = angle + 10)
{
Serial.print("normal mode/angle : ");
Serial.println(angle);
servo.write(angle);
delay(1000);
}
// 180 to 0 degrees
for(angle = 180; angle > 0; angle = angle - 10)
{
Serial.print("reverse mode/angle : ");
Serial.println(angle);
servo.write(angle);
delay(1000);
}
}
------------------------------------------------------------------------------------------------------------
소스를 upload(à) 버튼을 눌러 실행한다.
▶ 구매 가이드
서보모터 : http://www.aliexpress.com/wholesale?SearchText=arduino+servo
(시험용의 경우는 소형(micro)으로 구매하기를 권고한다. 중형이 넘어가면 서보모터 드라이버가 별도로 필요하다)
▶ 강의 키워드
서보 모터, servo motor, 아두이도, Arduino