반응형

서보모터(Servo Motor)는 RC등에 많이 쓰이는 모터이다. 

각도제어가 가능하여 RC나 로봇, 가전제품 등의 동작제어를 위하여 많이 쓰인다.

아마도 캠코더나 예전의 VTR 같은 기기의 버튼을 누르면 동작하는 부분에도 많이 쓰였을 것이다.


내가 가지고 있는 SG90 서보모터이다. 모터를 사니 고정나사, 브라켓 등이 따라왔다.


서보모터의 안에는 기어박스와 DC모터 제어회로기판이 들어있다. SG90은 0~180도 까지 제어가 가능하다.


서보모터(SG90) 데이터시트:

SG90Servo.pdf





아두이노와의 연결은 갈색선은 GND, 빨간선은 5V, 노란선은 디지털 12번 단자에 연결하였다.


프리징 파일:

servomotor.fzz


##소스1##

0도와 180도로 번갈아가면서 움직이는 소스

180 부분의 각도를 조절하면 다양한 각도로 움직이게 할 수 있다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "Servo.h"
 
Servo myservo;  //servo 객체를 만들어준다 (최대8개 생성 가능)
 
void setup()
{
  myservo.attach(12);   //servo motor 연결핀 설정(디지털 12번핀)  
}
 
void loop()
{
  myservo.write(0);     //각도 0도로 움직임
  delay(3000);
  myservo.write(180);   //각도 180도로 움직임
  delay(3000);
}
cs


##결과1##


##소스2##

0도~180도(또는 180도~0도) 까지 1도씩 움직이는 소스


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <Servo.h>
 
Servo myservo;  //servo 객체를 만들어준다 (최대8개 생성 가능)
 
int pos = 0;    // servo motor 회전각도 변수 선언
 
void setup()
{
  myservo.attach(12);  //servo motor 연결핀 설정(디지털 12번핀)
}
  
void loop()
{
  for(pos = 0; pos < 180; pos += 1)  //0도에서 180도까지 1도씩움직임
  {                                  
    myservo.write(pos);              //pos 변수의 각도만큼 움직여라 (1도씩증가)
    delay(50);                      //100ms delay (시간을 적게하면 빨리 움직임)
  }
  for(pos = 180; pos>=1; pos-=1)     //180도에서 0도까지 1도씩움직임
  {
    myservo.write(pos);              //pos 변수의 각도만큼 움직여라 (1도씩증가)
    delay(50);                      //100ms delay (시간을 적게하면 빨리 움직임)
  }
}
cs


##결과2##


반응형

+ Recent posts