검색
홈으로 마이페이지 주문조회 장바구니
로그인
회원정보 게시판
회사소개 이메일
도서(BOOK)
키트(KIT)
특판 상품
졸업작품&전자기초
응용모듈
전자부품
모터
기구
엔클로져
고객센터 게시판
자유게시판
MCU 통합 게시판
강좌-RaspberryPi
강좌-드론(쿼드콥터)
강좌-아두이노(기초)
강좌-아두이노(응용)
신제품/신기술 소개
DIY 공작 게시판
윤교수의 연구실 칼럼
 ☎ : 02-776-4868

 F: 02-779-6757

☞ 평일 : 09~18시
☞ 주말 : 10~13시


국민822401-04-027758
☞ 예금주 : Ohm사
국민822401-04-027761
☞ 예금주 : R&C사
 
 
1 (주)알트소프트 사이트
 
2 LabVIEW 강좌 사이트
 
3 윤교수의 마이크로프로세서 월드
 
4 전자 엔지니어
 

 

 
강좌-아두이노(기초)
 
2014. 05. 20 (11:48)
제목[아두이노] 15. 서보 모터
작성자 조회 : 5531

15. 서보 모터

 

이번 강좌에서는 서보 모터 제어에 대해서 알아 보도록 한다.

사용할 서보 모터는 아래 그림과 같은 종류이다.

 

 

 

 


간단한 사양을 정리 해 보면,

 

  • 사용전압 : 4.2 ~ 6V

  • 동작속도 : 0.3/60

  • 토크 : 1.5 Kg/cm

  • 동작온도 : 0 ~ 55

  • 무게 : 9g

 

서보 모터의 동작은 PWM 신호의 형태로 동작을 한다. 20ms 주기로 0.5ms ~ 2.5ms의 펄스로 신호를 주면, 0˚ ~ 180˚의 위치를 제어할 수 있다.

 

0.5ms--------------0

1.0ms------------45

1.5ms------------90

2.0ms-----------135

2.5ms-----------180

 

아래 그림의 동작을 보면 이해가 빠를 것이다.

 

  <출처 : http://gongkong.gkbk.com>

 

10비트의 PWM을 이용한다고 하면, 180˚/1024 대략 1비트당 0.18˚로 제어가 가능하다.

 

이번 강좌에서의 실험도 아두이노의 기본 라이브러리를 이용해서 하도록 한다. 가변저항을 이용하여, 아날로그 값을 입력 받아서 서보모터를 해당 값만큼 각도를 움직이는 실험이다.

 

 

위의 회로를 참고하여, 아래와 같이 구성해 보자.


 

예제는 [파일]-[예제]-{Servo}-[Knob]를 이용하도록 한다.

 

// Controlling a servo position using a potentiometer (variable resistor)

// by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>

 

#include

 

Servo myservo;  // create servo object to control a servo

 

int potpin = 5;  // analog pin used to connect the potentiometer

int val;    // variable to read the value from the analog pin

 

void setup()

{

  myservo.attach(9);  // attaches the servo on pin 9 to the servo object

}

 

void loop()

{

  val = analogRead(potpin); // reads the value of the potentiometer (value // between 0 and 1023)

val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo

// (value between 0 and 180)

myservo.write(val);  // sets the servo position according to the scaled

// value

  delay(15);                           // waits for the servo to get there

}

 

위 코드는 아날로그 포트5에 연결되어 있는 가변저항의 값을 읽어서, 그 값에 해당하는 만큼의 각도로 환산하여 서보모터를 동작시키게 된다.


새로 나온 내용에 대해서 알아 보도록 하자.


           #include


서보 모터를 사용하기 위해 추가해야 되는 라이브러리의 헤더 파일이다.

 

           Servo myservo; 

사용자 임의의 클래스 변수를 지정한다.


       myservo.attach(9);

       servo.attach(pin)


pin에 서보 모터가 연결되는 핀 번호를 지정해 준다.


           myservo.write(val);

       servo.write(angle)


angle에 서보 모터의 각도를 지정해 준다. 0부터 180까지 지정이 가능하다.

컴파일 후에 업로드 해 보면서 동작을 이해하기 바란다

이번 강좌를 마지막으로 기초 강좌를 마치도록 한다. 다음 강좌는 응용 강좌 게시판에서 다루게 되며, 쉴드 보드 위주로 강좌를 연재하려 한다. 기초 강좌도 15강좌로 마무리 지게 되지만, 필요한 부분이 있으면 별도로 올리도록 하겠다.

비밀번호 확인 닫기
name password
  Content name date hits
[아두이노] 15. 서보 모터  
2014/05/20 5531
상호명 : R&C사 사업자등록번호 : 106-02-43112 통신판매업신고번호 : 용산 03564
대표 : 곽민수 사업장소재지 : 서울시 용산구 갈월동 17-1번지 세기빌딩 101호
전화 : ☎ : 02-776-4868 ,F: 02-779-6757 개인정보담당자 : 곽민수
[회사소개] [이용안내] [이용약관] [개인정보취급방침]
Copyright ⓒ 도서출판 OHM사와 학습기기 R&C사 All Rights Reserved.