아두이노로 서보모터 제어하기

아두이노로 서보모터를 제어해보자.

서보모터는 주로 각도를 정밀하게 움직일 필요가 있을 때 사용한다.

서보 (Servo)의 어원은 라틴어의 Servue로서 노예라는 의미를 가지고 있으며, 목표치에 대한 위치, 방위, 자세 등의 제어가 자동화되어 있는 장치 이름에 붙여지곤 한다. 이와 같이 서보모터는 모터와 기어박스 그리고 제어회로로 구성되어있어, 특정 위치로 이동하거나, 특정한 수치(속도 등)만큼 가동시킬 때, 모터로 부터의 피드백을 통해 정확하게 제어할 수 있는 구조를 갖추고 있는 모터로 자동화 생산 시스템, 로봇, 장난감, 가전제품 등 광범위하게 쓰이고 있다.

PWM 제어

서보 모터의 제어 방법은 PWM(Pulse Width Modulation:펄스 폭 변조) 방식이다.
내장된 타이머카운터를 이용하여 전압이 인가되는 주기를 조정하고 그에 따라 모터나 다른 액츄에이터들이 작동하게 된다. 90도를 회전시키기 위해서는 1.5ms동안 펄스폭을 변화시키면 된다.

(출처: https://kocoafab.cc/learn/5 )
관련 이미지
서보모터

서보모터는 세 종류의 전선이 있는데, 보통 빨간색(또는 주황색)이 VCC(5V), 노란색(또는 흰색)이 신호선, 검은색(또는 갈색)이 GND이다. 각각에 맞게 연결해주면 된다.

회로도

코드

코드 보기

#include <Servo.h> //서보 라이브러리 호출
 
Servo dumpling; // 서보 변수 이름 설정
               
int pos = 0;     // 서보 위치를 저장할 변수를 선언

void setup() 
{ 
  dumpling.attach(9);  // 9번 핀에 서보 연결
} 
 
void loop() 
{ 
  for(pos = 0; pos < 180; pos += 1)  // 0도에서 180도로 1도씩 이동
  {                                 
    dumpling.write(pos);              // 'pos'변수의 위치로 서보를 이동
    delay(20);                       //  20ms 대기
  } 
  for(pos = 180; pos>=1; pos-=1)     // 180도에서 0도로 1도씩 이동
  {                                
    dumpling.write(pos);              // 서보를 반대방향으로 이동
    delay(20);                       // 20ms를 대기
  } 
} 

실습 사진

실습 동영상

(참고사이트: https://kocoafab.cc/learn/5 )


Comments

10 responses to “아두이노로 서보모터 제어하기”

  1. I’m really enjoying the design and layout of your blog. It’s a very easy on the eyes which
    makes it much more enjoyable for me to come here and
    visit more often. Did you hire out a designer to create
    your theme? Superb work!

  2. It’s impressive that you are getting ideas from this article as well as from our discussion made at this time.

  3. We absolutely love your blog and find a lot of your
    post’s to be just what I’m looking for. Do you offer
    guest writers to write content in your case? I wouldn’t mind writing
    a post or elaborating on a lot of the subjects you write with regards to here.
    Again, awesome web log!

  4. I’m not that much of a online reader to be honest but your sites really nice, keep it up!

    I’ll go ahead and bookmark your website to come back later on. All the best

  5. Thank you for any other informative blog. Where else could I
    am getting that kind of information written in such a perfect means?
    I have a project that I am just now operating
    on, and I’ve been on the glance out for such
    information.

    1. Glad that my post is helpful! Go on glancing

  6. What’s Going down i’m new to this, I stumbled upon this I have found It
    absolutely useful and it has helped me out loads.
    I am hoping to give a contribution & help other users like its aided me.
    Great job.

  7. I feel this is one of the most significant info for me.

    And i’m satisfied studying your article. But should observation on few general things,
    The site taste is ideal, the articles is in reality excellent
    : D. Excellent job, cheers

    1. Thanks,writing articles regularly seems hard which makes me tired. But it makes me happy at the same time.

Leave a Reply