아두이노, 서보모터 제어 예제
아두이노, 서보모터 제어 예제
글. 오상문 sualchi@daum.net
예제에 사용한 서보모터는 SG90 모델입니다. 직접 제어할 수도 있는데 Servo 라이브러리를 사용하는 게 편합니다.
일반적인 입력 각도는 180도 범위이고 저는 0~179 도 사이를 사용합니다. 참고로, Servo.h 파일에서는 200보다 작으면 일반 각도로 인식한다고 합니다.
void write(int value); // if value is < 200 its treated as an angle, otherwise as pulse width in microseconds
핀 연결 방법은 다음과 같습니다.
[아두이노] [서보모터]
디지털 7번핀 --------------- 데이터핀 (주황색 또는 흰색 선)
5V ------------------------ VCC (빨간색 선)
GND ---------------------- GND (갈색 또는 검정색 선)
[그림] 연결한 모습
예제 코드는 다음과 같습니다.
#include <Servo.h>
Servo servo; // servo 객체
int value = 0; // 각도 변수
void setup()
{
servo.attach(7); // 7번핀 지정
Serial.begin(9600); // 시리얼 모니터
servo.write(0); // 서보모터 각도 0
}
void loop()
{
if(Serial.available()) { // 시리얼 모니터 가능하면
char data;
data = Serial.read(); // 시리얼 모니터 입력 값
if(data == '1') { // 1이 입력되면
value += 30; // 30도 증가
value %= 180; // 180도 이상이면 0도로 설정
servo.write(value); // 서보모터 각도 변경
}
}
}
<이상>