서보모터 제어방식 - seobomoteo jeeobangsig

서보모터 제어의 종류에는 위치제어, 토크 제어, 속도제어가 있다 - 모터114

서보모터 제어방식 - seobomoteo jeeobangsig
모터1142018. 12. 21. 8:53

서보모터 제어방식 - seobomoteo jeeobangsig

안녕하세요!

모터114입니다.

오늘은 서보모터 제어의 3가지 특성에 대해서 포스팅하도록 하겠습니다.

위치제어와 토크 제어, 속도제어 크게 세 가지로 나누어집니다.

자세히 알아보도록 하겠습니다!

서보모터 제어방식 - seobomoteo jeeobangsig

1. 위치제어

원하는 회전수 또는 정확한 위치에서 정지하도록 하는 것이 위치제어이다.

위치제어는 서보모터를 일정한 속도로 회전 정지시켜야 한다.

2. 토크 제어

토크 제어는 현재 서보모터에서 인가되는 전류 명령이라 보며 모터의

토크는 전류에 비례해 서보모터에 인가되는 전류를 제어해 서보모터의

토크도 제어한다.

※ 루프(loop)란 서보모터에 인가되는 전류를 검출하고 다시 토크의 지령과

비교 처리해 서보모터에 다시 인가되는 전류 명령이다.

3. 속도제어

토크 제어는 서보모터에서 일정한 힘을 발생시키며 속도 제어는 토크를

제어해 서보모터를 일정한 속도로 제어한다. 속도제어루프는

제어 루프에서 입력되는 속도 명령을 서보모터 출력에서 검출된

속도 편차와 비교해 명령을 준다.

항목

위치제어

속도제어

토크 제어

기본기능

서보모터의 회전량

(기계의 이동량)

서보모터의 회전속도

서보모터의 출력 토크

지령 방식

펄스열

수치 설정(각종 프로그램)

아날로그 속도 지령 전압

다 단속 설정

아날로그 지령 전압

파라미터 설정

정지 시

서 보락(현재 위치 유지)

속도 제로

(회전속도를 제로로 하지만 현재

위치는 유지하지 않음)

토크 제로

(출력 토크를 제로로 함)

동작시

상시 위치 지령에 추종

(위치 지령에 추종하므로 속도와

토크는 자동으로 변화한다.

상시 속도 지령에 추종

(속도 지령에 추종하므로 토크는 자동 변화함)

상시 토크 지령에 추종

(출력 토크를 제어하므로 위치, 속도는 제어 안 함)

용도

- 볼나사, 랙&피니언 등의 기계 위치제어

- 복수 축의 동기 운전

- ATC 등의 회전 분주

- 정렬 콘베어 등의 급감속을 필요로 하는 기계

- 회전속도의 정도가 요구되는 정량 펌프

- 감는 장치 등의 장력 제어

- Stopper 등을 이용한

위치 결정

서보모터 제어방식 - seobomoteo jeeobangsig
[Micro Servo motor SG-90]

servo모터는 자체적으로 속도 조절을 할 수 있어 속도를 정밀하게 통제할 수 있는 모터 시스템으로 내부에 컨트롤러를 이용하여 어느 정도 회전했는지 센싱하고 입력 받은 값만큼 회전시켜주는 기능을 가지고 있다.

Servo 모터 구성

Servo모터는 보통 전원부 Vcc, GND, Servo모터를 제어할 수 있는 총 3개의 핀으로 구성되어 있다. 이 제어용1핀에 PWM파형을 입력해서 Servo모터를 제어한다.

서보모터 제어방식 - seobomoteo jeeobangsig

Servo 모터 동작 원리

서보모터 제어방식 - seobomoteo jeeobangsig

제어 핀에는 20ms가 주기이고 펄스폭이 1~2ms되는 pwm파형을 보내주어 서보모터를 제어 할 수 있다.

서보모터 제어방식 - seobomoteo jeeobangsig

위의 그림처럼 펄스폭에 따라 서보모터가 제어되게 될 것이다.

아두이노에 Servo모터 연결하기

전원부와 GND부분은 그대로 연결하되 제어용 핀은 PWM출력이 가능한 포트에 연결한다.(~표시가 있는 부분이 PWM 가용 포트이다.)

서보모터 제어방식 - seobomoteo jeeobangsig
[서보모터 배선도]
서보모터 제어방식 - seobomoteo jeeobangsig
[서보모터 회로도]
서보모터 제어방식 - seobomoteo jeeobangsig
[서보모터 회로구성]

#Servo 모터 모듈 연결 방식

Servo 모터

아두이노

연결 핀

검은색 선

GND

빨간색 선

5V

주황색 선

디지털 핀

예제

라이브러리에 Servo.h 파일이 있는지 확인한다.

서보모터 제어방식 - seobomoteo jeeobangsig
[서보모터 예제 프로그램]

Servo.myservo;서보모터의 변수를 지정하는 함수이다. 우리가 앞서 흔히 썼던 int와 비슷한 역할을 한다고 보면 된다( int = myservo servo.myservo)

myservo.attach(9);9번 포트를 서보모터 전용 포트로 사용하겠다는 함수이다.괄호에 사용할 PWM포트 번호를 입력한다.

myservo.write(180); 서보모터 각도제어 함수이다. 괄호에 원하는 서보모터 각도를 입력한다.(0도에서 180도까지)

이 방법은 단순히 서보모터의 각도를 조절하는 것이다. 서보모터의 회전 각도뿐 아니라 속도를 좀 더 정밀하게 제어하기 위해서는 다른 방법이 필요하다.

예제2

서보모터 제어방식 - seobomoteo jeeobangsig

예제3

서보모터 제어방식 - seobomoteo jeeobangsig

위의 예제들은 for문을 이용하여 각도나 회전 시간을 조금 더 정밀하게 제어하는 방법이다.

for문이 실행되는 과정을 살펴보면 서보각의 변수인 angle의 초기값을 0으로 설정 한 후 증가량을 조작하여 서보모터가 한번 움직이는 각도를 조절하였다. 또한 delay함수를 조절하여 서보모터가 돌아가는 시간 또한 조절을 할 수가 있다. 이처럼 for문 내부의 조건문과 delay 조작을 통해 서보모터가 돌아가는 시간, 각도의 정밀 제어가 가능하다.

예제4

다음 예제에서는 시리얼모니터를 이용하여 서보모터의 각도를 제어한다.. 시리얼모니터를 사용하므로 다른 하드웨어구성은 필요하지 않다.

서보모터 제어방식 - seobomoteo jeeobangsig
[프로그램]

실행결과

서보모터 제어방식 - seobomoteo jeeobangsig
[시리얼모니터]

위 사진처럼 원하는 각도를 입력하면 그 숫자만큼 서보각이 조절된다.

/*여러개의 서보모터를 제어할 경우 아두이노에서 나오는 전류만으로는 부족할 수 있다. 이 경우 배터리등을 이용하여 서보모터에 추가전원을 입력해주어야 한다.*/