본문 바로가기
IOT 로봇 아두이노/아두이노 기본센서 연결하기

[아두이노 기초] 서보모터 사용하기

by Jango_infoinno 2021. 4. 18.
목차
1) 아두이노 모터 종류
2) 서보모터란?
3) 서보모터 사용하기

 

1. 아두이노 모터 종류

아두이노에서 사용되는 모터는 일반적으로 많이 사용 되는 3가지 종류가 있습니다. 종류로는 DC모터, 서보모터, 스테핑모터 가 있습니다.

2-1) DC모터 : 옛날 문방구에서 팔던 미니카의 모터 입니다. 일반적으로 흔히들 알고 계시는 모터를 생각하시면 됩니다.  직류모터라고도 하며 기동 토크가 크고, 효율이 높으며 가격이 저렴한 장점이 있습니다.


2-2) 스테핑모터 : 스텝에 의해 구동되는 모터 입니다. 4개의 모터상이 있어서 한 스텝 한 스텝 진행되면서 모터가 회전하는 원리 입니다. 모델마다 다를 수 있지만 보통 한 스텝당 1.8도씩 회전 합니다.


3-3) 서보모터 :  서보라는 것은 '추종한다', '따른다' 라는 의미 입니다. 즉, 명령을 따라는 모터를 서보 모터라고 합니다. 서보 모터는 펄스를 주어 위치(각도)를 제어하는 모터이며 위치 *피드백을 내부에서 구성하고 있으므로 고속으로 고정밀하게 각도를 조절할 수 있는 장점이 있습니다.

 

2.서보모터란?

- 서보 모터의 위치는 펄스의 길이에 따라서 설정됩니다. 서보는 대략 매 20ms마다 펄스를 받게되는데, 만약 이 펄스가 1ms동안 high이면 각은 0 이며, 1.5ms동안 high이면 중간위치에 위치하게 되고 2ms인 경우는 180도가 되게 됩니다..

- 서버가 움직일 수 있는 끝부분은 제품에 따라 차이가 있는데 많은 서보가 170도까지만 회전을 합니다. 360도까지 회전하는 서보도 있으니 필요하다면 제품을 찾아보는 것도 좋습니다.

 

- 서보 모터는 펄스에 의해 제어되어 사용하기 쉽습니다. 서보용 아두이노 라이브러리가 있어 서보에게 단지 동작할 각도를 알려주기만 하면 됩니다.

 

이러한 서보 라이브러리를 사용하기 위해서는 아래와 같은 코드로 아두이노 IDE에게 서보 라이블러리를 사용할 것임을 알려주어야 합니다.

  • include <Servo.h>
  • Servo servo;

위의 코드에서 보면 Servo 타입 servo변수를 정의한 것을 볼 수 있습니다. Servo는 라이브러리에서 제공하는 변수 타입으로 서보사용시 사용합니다. 8개까지의 서보를 정의할 수 있습니다. 만약 두개의 서보를 가지고 있다면, 아래와 같이 정의 할 수 있을 것입니다.

  • Servo servo1;
  • Servo servo2;

servo변수에게는 실제로 제어할 서보의 제어핀이 어떤 핀인지를 알려주어야 니다. 아래의 코드로 servo변수에게 제어핀을 알려줍니다.

  • servo.attach(mpin);

변수 angle은 서보의 현재각도를 저장하기 위해 사용됩니다. loop함수에서 우리는 두개의 for loop를 사용하는 것을 볼 수 있는데, 첫번째로 각도를 한방향으로 180도까지 증가 시키고, 다음 for 루프에서는 반대방향으로 욺직이게 합니다.

servo.write(angle);

 

위의 코드는 서보에게 파라메터로 들어온 각도로 위치를 업데이트 하는 명령입니다.

 

3. 서보모터 사용하기

 

갈색선 : GND 

빨간선 : V5

노란선 : 9번pin = mpin

 

 

 

 

3-1) 서보모터 좌우로 왔다갔다 움직이기

[스케치] -> [라이브러리 추가] -> [servo 클릭!]

 

 

빨간색 : + / 검은색 : -


3-2) 서보모터를 내가 원하는 각도로 움직이기

 

빨간색 : + / 검은색 : -

 

 

참조:https://blog.naver.com/seep1505/220543950979 , https://codingrun.com/110 , https://www.kocoafab.cc/tutorial/view/62 , http://wiki.vctec.co.kr/opensource/arduino/servocontrol
반응형

댓글