모터드라이버 사용하기 / DC모터 제어하기 / 아두이노 모터드라이버 / L9110 모터드라이버, HG7881 모터드라이

라임 2017-01-15 (일) 00:30 7년전 29410  

  

 개요 (Introduction) 

 

아두이노나 기타 컨트롤러 보드에서 모터를 제어하기 위해서는 모터드라이버를 사용해야합니다. 모터드라이버를 

사용하는 이유, 사용하는 방법 등에 대해 알아보도록 하겠습니다.

  


시작 전 알아야 할 내용
 


 
  모터와 모터드라이버  

DC모터는 DC전압을 입력하면 작동(회전)하는 모터를 말합니다. 극을 반대로 연결하면 반대로 회전하며, 가격이 저렴하지만 전류를 많이사용하는 편입니다. 아두이노의 디지털핀은 스펙상으로 40mA까지 사용할 수 있기때문에 DC모터를 제어하기란

턱없이 모자랍니다. 그렇기 때문에 사용하는것이 바로 모터드라이버입니다. 모터드라이버는 외부로부터 전원을 입력받고,

아두이노로부터는 신호를 입력받습니다. 입력받은 전원과 신호는 DC모터에 사용되며, 이러한 원리로 아두이노 x 모터 제어가

가능해집니다.


모터드라이버도 제품마다 입력전압, 사용가능한 전류등의 조건이 있기때문에 어떤 모터를 사용할 것인가에 따라 모터드라이버를 변경해줘야합니다. 에제에서 사용하는 모터드라이버나 DC모터에 대한 자세한 스팩은 아래의 링크를 클릭하여 확인해주세요.

 

 준비물 (Part list) 

 

 

 

 

 

 

1. 아두이노 우노

2. 우노 전원케이블 

3. 모터드라이버 

4. DC모터 

5. 점퍼와이어 

 수량: 1개

 수량: 1개

수량: 1개

수량: 1개

수량: x개

 

1. 아두이노 - 연결된 부품들을 제어하는 두뇌역할을 담당합니다. 크기와 기능에 따라 우노, 메가, 나노, 프로미니 등의 
보드들이 존재하며  정품과 호환보드로도 분류해줄 수 있습니다.
2. 우노 통신, 전원케이블  -   우노보드에 전원을 넣어주고 컴퓨터와 통신하여 업로더를 해줄 수 있습니다.
3. 모터드라이버  -  모터를 제어할 수 있도록 아두이노를 도와줍니다.
4. DC모터  -  DC전압(전기에너지)으로 회전운동을 합니다.
5.. 점퍼와이어  -  부품들을 연결해줍니다.

 

 

 

 

  메이크쉐어 (MakeShare) 

 

 

예제에서 사용되는 모터는 비교적 사용되는 전원이 적기 때문에 아두이노의 5V로 전원을 공급했습니다. 하지만 아두이노의 5V로 전원 공급이 부족하다면 아래쪽의 외부전원 입력 회로도를 참고하여 진행해보세요.


모터드라이버의 제조사에 따라 VCC,GND,모터핀의 배치가 다를 수 있습니다. 아래의 텍스트를 확인 후 연결해주세요.

(본 제품은 모터를 2개 제어할 수 있지만 일단 1개만 표시합니다.)

 

아두이노 5V - 모터드라이버 VCC

아두이노 GND - 모터드라이버 GND

모터A-1 - 모터A +혹은-

모터A-2 - 모터A -혹은+

 

 

외부전원을 넣을 때 

외부전원을 입력할 경우 건전지, 아두이노, 모터드라이버의 GND를 모두 연결해줘야합니다. 그외에는 위와 같은 원리입니다.

(사용 편의상 스위치를 넣었습니다. 빼도 무관합니다.)

 

 

void setup() {

  pinMode(5, OUTPUT);         // 디지털 5번핀을 출력모드로 설정한다.

  pinMode(6, OUTPUT);         // 디지털 6번핀을 출력모드로 설정한다.

  pinMode(10, OUTPUT);         // 디지털 10번핀을 출력모드로 설정한다.

  pinMode(11, OUTPUT);         // 디지털 11번핀을 출력모드로 설정한다.


}

void loop() {

  analogWrite(5, 255);        // 5번핀에 PWM신호 255를 출력한다.

  analogWrite(6, 0);        // 6번핀에 PWM신호 0를 출력한다.

  analogWrite(10, 255);        // 10번핀에 PWM신호 255를 출력한다.

  analogWrite(11, 0);        // 11번핀에 PWM신호 0를 출력한다.

  delay(3000);               // 3초동안 딜레이

  analogWrite(5, 0);        // (모터를 멈춘다.)

  analogWrite(6, 255);        // 5번핀에 PWM신호 255를 출력한다.

  analogWrite(10, 0);        // (모터를 멈춘다.)

  analogWrite(11, 255);        // 5번핀에 PWM신호 255를 출력한다.

  delay(3000);   // 3초동안 딜레이

}

 

 

 

  결과물 (Product) 

 

 

 아예 회전하지 않거나 반대로 회전하지 않으면 전류가 부족해서입니다. 이럴 경우 배터리를 더 늘리거나

Vin으로 직접적으로 넣어주거나 배터리의 전원을 모터드라이버로 직접 연결해줘야합니다. (동영상은 USB와

배럴잭으로 아두이노에 전원을 입력하여 아두이노 5V로 모터드라이버(모터)에 전원을 입력했습니다.)


모터에 대한 기술지원에 도움이 되는 사이트 바로가기

메카리워즈 Image Map


모바일 버전으로 보기