Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob

직류 전동기는 기계적 동력을DC 전력. DC 모터의 가장 중요한 특징 중 하나는 간단한 방법을 사용하여 요구 사항에 따라 속도를 쉽게 제어 할 수 있다는 것입니다. 이러한 유형의 제어는 AC 모터에서는 불가능합니다.

속도 조절의 개념은 다릅니다.속도 제어에서. 속도 조절에서는 모터의 속도가 자연스럽게 바뀌는 반면 DC 모터에서는 모터의 속도가 운전자 또는 일부 자동 제어 장치에 의해 수동으로 변경됩니다. 그만큼 속도 직류 전동기의 관계는 다음과 같습니다.

방정식 (1)은 속도가 전원 전압 V, 전기자 회로 저항 R에이 및 계자 전류에 의해 생성되는 계자 자속 φ.

Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob

내용:

    • DC 모터의 전기자 저항 제어
    • 전기자 저항 제어 방법의 단점
    • DC 모터의 자속 제어 방법
    • 전환기 사용
    • 탭 필드 제어
    • 필드 Flux 제어의 장점
    • DC 모터의 전기자 전압 제어

DC 모터의 속도를 제어하기 위해전압 변동, 전기자 저항 및 계자 플럭스가 고려됩니다. DC 모터의 속도 제어에는 세 가지 일반적인 방법이 있습니다. 그들은 다음과 같습니다.

      • 전기자 회로의 저항 변화.
        이 메서드는 호출됩니다. 전기자 저항 또는 항온 조절.
      • 자속의 변화
        이 방법은 다음과 같이 알려져있다. 필드 Flux 제어.
      • 인가 전압의 변화
        이 방법은 다음과 같이 알려져 있습니다. 전기자 전압 제어.

속도를 제어하는 ​​다양한 방법에 대한 자세한 설명은 다음과 같습니다.

DC 모터의 전기자 저항 제어

션트 모터

전기자 저항 제어 방식의 션트 모터의 결선도는 아래와 같습니다. 이 방법에서는 가변 저항 R이자형 전기자 회로에 삽입됩니다. 필드가 전원 메인에 직접 연결되어 있기 때문에 가변 저항의 변화는 플럭스에 영향을 미치지 않습니다.

Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob
그만큼 고속 전류 특성 다음은 션트 모터의 그림입니다.
Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob
시리즈 모터

이제는 전기자 저항 제어 방식으로 DC 시리즈 모터의 속도 제어 연결 다이어그램을 살펴 보겠습니다.

Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob
전기자 회로 저항을 변화시킴으로써전류 및 플럭스가 모두 영향을받습니다. 가변 저항에서의 전압 강하는 전기자에인가 된 전압을 감소시키고, 결과적으로 모터의 속도가 감소된다.

그만큼 속도 전류 특성 아래 그림은 시리즈 모터의 그림입니다.

Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob
가변 저항 Re의 값이모터가 더 낮은 속도로 작동합니다. 가변 저항은 완전한 전기자 전류를 전달하므로 완전 전기자 전류를 연속적으로 전달하도록 설계되어야합니다.

전기자 저항 제어 방법의 단점

      • 외부 저항 Re에는 많은 양의 전력이 낭비된다.
      • 전기자 저항 제어는 속도를 모터의 정상 속도 이하로 유지하도록 제한되며이 방법으로는 정상 속도 이상으로 속도를 증가시킬 수 없습니다.
      • 가변 저항의 주어진 값에 대해 속도 감소는 일정하지 않지만 모터 부하에 따라 다릅니다.
      • 이 속도 제어 방법은 소형 모터에만 사용됩니다.

DC 모터의 자속 제어 방법

Flux는 계자 전류에 의해 생성됩니다. 따라서,이 방법에 의한 속도 제어는 계자 전류의 제어에 의해 달성된다.

션트 모터

션트 모터에서 가변 저항 R기음 아래 그림과 같이 션트 계 권선과 직렬로 연결됩니다. 이 저항 R기음 라고합니다. 션트 레귤레이터.

Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob
션트 자기장 전류는 다음 방정식에 의해 주어진다.
Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob

현장에서 RC를 연결하면계자 전류가 흐르기 때문에 플럭스도 감소한다. 이러한 플럭스의 감소는 속도를 증가 시키므로, 모터는 정상 속도보다 높은 속도로 주행합니다. 따라서이 방법은 모터 속도를 정상 이상으로 높이거나 하중 때문에 속도 저하를 교정하는 데 사용됩니다.

그만큼 속도 - 토크 곡선 션트 모터의 경우 아래와 같습니다.

Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob
시리즈 모터

시리즈 모터에서, 계자 전류의 변화는 임의의 하나의 방법, 즉 다이 버터 또는 탭핑 된 필드 제어에 의해 수행된다.

전환기 사용

가변 저항 R디 아래 그림과 같이 시리즈 계자 권선과 병렬로 연결됩니다.

Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob
병렬 저항을 다이 버터 (Diverter)라고합니다. 주 전류의 일부는 가변 저항 R디. 따라서 다이 버터의 기능은전류는 계자 권선을 통해 흐른다. 계자 전류의 감소는 플럭스의 양을 감소시키고 결과적으로 모터의 속도가 증가합니다.

탭 필드 제어

계자 전류의 변화를위한 직렬 모터에서 사용되는 두 번째 방법은 탭 필드 제어에 의한 방법입니다. 연결 다이어그램은 아래와 같습니다.

Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob
여기서 암페어 턴은필드 턴 수. 이러한 유형의 장치는 전기 견인 시스템에 사용됩니다. 모터의 속도는 계 자속의 변화에 ​​의해 제어됩니다. 시리즈 모터의 속도 - 토크 특성은 다음과 같습니다.

Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob

필드 Flux 제어의 장점

계자 플럭스 제어 방법의 장점은 다음과 같습니다.

      • 이 방법은 쉽고 편리합니다.
      • 션트 필드가 매우 작기 때문에 션트 필드의 전력 손실 또한 작습니다.

플럭스는 일반적으로 그 이상으로 증가 될 수 없다.철분의 포화로 인해 정상 수치를 나타냅니다. 따라서 자속에 의한 속도 제어는 자계의 약화로 제한되며 속도가 증가합니다. 이 방법은 필드가 너무 약화되면 안정성이 떨어지기 때문에 제한된 범위에만 적용 할 수 있습니다.

DC 모터의 전기자 전압 제어

전기자 전압 제어 방법에서 속도 제어는 모터의 전기자 권선에서인가 된 전압을 변화시킴으로써 이루어진다. 이 속도 제어 방법은 다음과 같이 알려져 있습니다. 와드 레오나드 방법이것은 Ward Leonard Method 또는 Armature Voltage Control 항목에 자세히 설명되어 있습니다. 링크는 아래에 제공됩니다.

 

Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob

 

 

<목표>

 

 

- 모터를 사용하다보면 모터 출력을 조금만 더 낮추고 싶거나, 내 마음대로 조절하고 싶을때가 많다.

아두이노로 모터 회전속도를 제어할 수 있는데,

PWM 을 이용하여 모터드라이버에 신호를 주면 된다.

그 방법을 한번 알아보도록 하자.


<준비물>

 

 

- 아두이노(우노, 나노, 메가), 모터드라이버(L298N, L9110)

(모터 드라이버마다 사용법이 다를 수 있음)


<회로도>

Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob

 

< 12V 이하의 건전지 사용 시 회로 >

Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob

< 컴퓨터 USB 전원 사용 시 회로 >

 

 


<코드>

 

int motor_1 = 10;
int motor_2 = 9;

void setup() {
  // put your setup code here, to run once:
  pinMode(motor_1, OUTPUT);
  pinMode(motor_2, OUTPUT);


}

void loop() {
  // put your main code here, to run repeatedly:
  delay(1000);
  analogWrite(motor_1, 255/3);
  digitalWrite(motor_2, 0);

  delay(2000);
  analogWrite(motor_1, 255*2/3);
  digitalWrite(motor_2, 0);

  delay(2000);
  analogWrite(motor_1, 255);
  digitalWrite(motor_2, 0);
  delay(1000);
}

 


<실행 결과>

 

youtu.be/nSYL2PLpLiI

위의 영상을보면 처음 2초 동안은 느리게

그다음 2초 동안은 중간 속도로

그다음 2초 동안은 모터 최고 속도로 회전하는 작동을 볼 수 있다.

 

코드를 보면 analogWrite( ) 함수를 사용하는 것을 볼 수 있다.

analogWrite( ) 함수를 사용함으로써 짧은 시간동안 제어신호를 보내고 끊고를 반복할 수 있는데,

analogWrite( ) 함수를 이용하기 위해서는 아두이노에서 PWM 핀을 확인해야 한다.

 

Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob

기본적으로 아두이노 우노와 나노는 핀맵이 똑같기 때문에, 아두이노 핀맵을 참고하면 된다.

아두이노 우노에서는

3, 5, 6, 9, 10, 11번 핀에서만 PWM 제어가 가능하다.

나머지 핀들은 출력할 때, HIGH 또는 LOW만 가능하다는 뜻이다.

 

 

위에서 소개한 방법은 PWM 제어가 가능한 핀들이 여유가 있을 때 사용하면 된다.

그런데 핀들이 많아지고 PWM 제어 핀이 여유가 없다면 다른 방법으로 모터 제어를 해야한다.

 

 

 

 

 

L298N 모터드라이버에서는 PWM 제어를 하는 방법은 두가지가 있다.

 

여태 필자가 위에서 사용한 방식 그대로 사용하는 방법이 있고,

다른 방법은 L298N 과 같은 모터드라이버에서만 가능한 방법이다.

 

Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob

모터드라이버에 있는 ENA 점퍼핀을 제거해야 한다.

 

Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob

점퍼핀을 제거하고 해당 핀에 아두이노 PWM제어 가능 핀을 연결시켜주어야 한다.

 

 

Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob

그리고 나머지 핀

IN 1, IN 2 핀은 아두이노의 아무 digital Pin 에 연결해주면 된다.

 

 

필자의 경우

IN 1 - 8번

IN 2 - 7번

ENA - 9번 핀에 연결해 주었다.

 

코드는 아래 코드를 이용하면 된다.

 

int motor_1 = 8;
int motor_2 = 7;

int motor_pwm = 9;

void setup() {
  // put your setup code here, to run once:
  pinMode(motor_1, OUTPUT);
  pinMode(motor_2, OUTPUT);
  digitalWrite(motor_1, HIGH);
  digitalWrite(motor_2, LOW);
  pinMode(motor_pwm, OUTPUT);
  analogWrite(motor_pwm, 0);
}

void loop() {
  // put your main code here, to run repeatedly:
  delay(1000);
  analogWrite(motor_pwm, 255/3);


  delay(2000);
  analogWrite(motor_pwm, 255*2/3);


  delay(2000);
  analogWrite(motor_pwm, 255);

  delay(1000);
}

 

youtu.be/bIjKJjXAUyg

시연 영상은 위 동영상을 확인하면 된다.

 

앞선 시연과 같다는 것을 볼 수 있다.

 

 

 

 

 

모터드라이버는 모스펫을 가지고 모터를 제어한다고 생각하면 된다.

위의 문구도 이해하기 어렵다면 스위치를 가지고 제어한다고 생각하면 된다.

 

스위치를 짧은 시간동안 여러번 켰다 껐다 하면서 모터에 전원을 공급해 주는 것이다.

그렇게 해서 모터에 인가되는 전압을 조절할 수 있는 것이다.

 

 

Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob

 

PWM에 대한 이해를 하려면 위의 그림을 이해해야 한다.

5V 전원에서 스위치를 켰다 껐다를 1초동안 몇 퍼센트로 반복하는지로 이해하면 된다.

 

제일 위에부터 보면 

0%는 1초 동안 스위치를 켜지 않은 것으로 0V가 된다.

25%는 1초 동안 스위치를 켰다 껐다를 25%의 비율로 반복한 것으로 5V * 25% = 1.25V 로 출력된 것 처럼 보인다.

아두이노에서는 64/255 = 25% 이므로, analogWrite() 에서는 64 값을 주어야 한다.

 

DUTY 비에 대해서 알았으니

이제 모터드라이버 내부를 살펴보자.

 

일단 우리가 제거했었던 ENA 점퍼핀의 역할은

모터 A를 사용할 것이냐 말것이냐를 정하는 핀인데

평소에는 점퍼핀으로 연결되어 있어서 무조건 모터 A를 사용하는 것으로 설정되어 있다.

그래서 IN1 과 IN2 에 analogWrite() 를 이용한 PWM 신호로 모터 속도를 제어할 수 있었다.

모터드라이버 내부에서 모터를 사용하는 것으로 받아들이고 IN1 과 IN2 에 따라서 모터속도를 결정하기 때문이다.

 

 

ENA 점퍼핀을 제거하게 되면 아무리 IN1 과 IN2 에 신호를 보내줘도 모터는 작동하지 않는데,

내부 회로에서 모터 A를 사용하는 회로가 끊겨있기 때문이다.

 

대신 ENA 핀에 아두이노의 PWM 핀을 연결해주고,

IN1 에는 HIGH 신호를, IN2 에는 LOW 신호를 준다면

모터는 IN1 과 IN2 에서 회전방향을 인지를 한 상태이지만, ENA 의 신호를 대기하고 있는 상황인 것이다.

여기서 ENA 신호를 PWM 제어로 보내주게 되면 전류가 흘렀다 말았다 하면서 모터속도를 제어해주게 되는 것이다.

 

 

너무 잡소리가 많았다.

그냥 위의 코드를 그대로 따라하면 사용가능하니 따라하면 된다.

L298N 의 경우 ENA 과 ENB 핀이 있지만

L9110 의 경우 ENA과 ENB핀이 없다고 해서 모터 속도 제어가 안 되는 것이 아니니 

위에서 설명한 방법대로 사용하면 된다.

 

 

 


※ 궁금하시거나 질문사항이 있으시면 댓글로 작성해주시면 답변해 드릴 수 있는 부분에서 친절히 답변드리겠습니다!

 

 

Dc모터 속도제어 방법 - dcmoteo sogdojeeo bangbeob

 

 

공유하기

게시글 관리

구독하기3D모델링 프린팅 후가공 전문 DIYver

저작자표시 비영리 변경금지

  • 카카오스토리
  • 트위터
  • 페이스북

'코딩 > 아두이노' 카테고리의 다른 글

로드셀과 HX711을 이용해서 무게 측정해보기 - 하프브릿지  (24)2021.04.02[SZH-SSBH-002] 적외선 장애물(물체) 감지 센서 사용하는 방법  (0)2021.04.017-segment 4개 모듈 사용하는 방법 TM1637  (0)2021.03.30아두이노로 스마트폰에 Pushbullet을 이용하여 알림 보내기  (39)2021.03.25아두이노로 AC 전류를 측정해보자 (AC 전류센서 [SEN0211] 사용예제)  (0)2021.03.22