[매드] 아두이노 강좌 - 41. DC 모터 동작




안녕하세요~ 매드 입니다.

정말 오랜만에 블로깅하는 것 같네요 ㅠㅡㅠ

변명하자면 그동안 시간이 많이 없었다고 밖에 할 수 없네요 ㅠ

하지만! ... 가능한한 시간을 좀 만들어서 블로깅을 해보도록 하겠습니다.
그동안 시간이 너무 흘러서 어느덧 2017년이 새롭게 시작되었네요!

여러분 모두 새로운 시작 잘 준비하셔서 바라시던 것들 모두 이루시기를 바라겠습니다.


41-1. 소형 모터 제어

<L9110 DC 모터 드라이버(출처:구글사진)>

이번 시간에는 아두이노를 이용하여 DC 모터를 제어하는 방법에 대해서 알아보도록 하겠습니다. 우선 많이 알려진 DC 모터 드라이버로 L298 모터 드라이버와 L9110 모터드라이버 있습니다. 두 가지의 차이점은 여러가지가 있지만 우리가 궁금한 것은 사용가능전압과 사용가능 전류가 되겠죠 ㅎㅎ

L298은 나중에 다루도록하고 L9110이 L298보다 좀 더 낮은 전압과 낮은 전류의 스펙을 가지고 있다는 것만 알고 지나가도록 하겠습니다.

L9110 모터 드라이버가 사용할 수 있는 DC 모터의 스펙은 아래와 같습니다.

입력전압 : 3~12V
사용전류 : 800mA

사용법도 간단합니다.
위 그림의 GND, VCC를 연결하고 아두이노에 A-IB, A-IA 두핀을 연결하여

입력              출력
A-IB, A-IA      MOTOR-A
H     L           H     L
L     H           L     H
L     L            L     L
H    H            L     L

위와 같이 아두이노 신호에 따라 모터의 출력신호도 달라지느 것이죠.
다만 아두이노쪽에서 같은신호를 사용하게 되면 (LL, HH) 모터출력은 LL로 모터가 동작하지 않는 다는 것입니다. 경우에 따라서 H H 신호일 경우 BREAK 기능이 있는 드라이버들도 있는데요. L9110의 경우는 소형모터 드라이버 이다보니 그런 기능은 없는 것 같네요~ ㅎ

그럼 제어하는 소스코드를 간단히 봐볼까요.


41-2. 펌웨어

void setup() {
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  digitalWrite(6,LOW);
  digitalWrite(7,LOW);
  delay(1000);
}

void loop() {
  // 정회전
  digitalWrite(6, HIGH);
  digitalWrite(7, LOW);
  delay(5000);

  // 정지
  digitalWrite(6, LOW);
  digitalWrite(7, LOW);
  delay(5000);

  // 역회전
  digitalWrite(6, LOW);
  digitalWrite(7, HIGH);
  delay(5000);
}


이번 시간에는 간단히 DC 모터 드라이버를 사용하여 모터를 제어하는 방법에 대해서 다루어 봤습니다. 모터 선정시에는 모터 드라이버의 스펙을 잘확인하셔서 나중에 낭패를 보시는 일이 없어야 할 것 같네요! >,.<

그럼 다들 화이팅 입니다 ^^



댓글 쓰기

0 댓글