아두이노 L9110 모터드라이버로 DC모터 제어하기

라임 2017-08-04 (금) 22:13 1년전 3522  

아두이노와  L9110 모터드라이버로 모터 제어하기

                                                                                                                                                                                                                                                                                                        


모터는 전기에너지를 직선 혹은 회전운동으로 만들어주는 전자부품이며, 간단한 예로 선풍기를 생각할 수 있습니다. 선풍기 내부에는 DC전원으로 

작동하는 DC모터가 들어있으며, 약, 중, 대와 같은 버튼을 누를 경우 회전 속도가 변경합니다. 이와 같이 모터의 회전속도나 방향 등을 제어하려면 

어떻게 해야할까요?

 







DC모터 & 아두이노 보드 & 모터 드라이버

                                                                                                                                                                                                                                                                                                        


DC모터 2개의 단자가 있으며, 단자에 +, - 극을 연결하여 전원을 입력할 경우 모터가 작동합니다. DC모터는 극이 없으며, 전원을  반대로 연결할

경우 반대로 회전하는 성질을 갖습니다. 또한 입력되는 전원(전압)의 크기에 따라 회전수와 힘이 조절됩니다. (전원과 회전수 및 힘은 비례함)


아두이노 보드 프로그램으로 전기신호(PWM)를 제어하기 위한 마이크로컨트롤러 보드입니다. 아두이노 보드에 프로그램을 넣어 전기신호를 제어

함으로써 모터에 입력되는 전원의 크기를 제어할 수 있으며, 모터의 방향 및 속도를 제어하게 됩니다.


모터 드라이버아두이노를 보조해주는 역할이라 볼 수 있습니다. 모터는 보통 아두이노와 같은 마이크로컨트롤러가 허용하는 전류보다 전류를 많이

사용하기 때문에 추가적인 회로가 필요하며, 그 역할을 하는것이 바로 모터드라이버입니다.






회로 연결하기

                                                                                                                                                                                                                                                                                                        


L9110 모터 드라이버는 2.5~12V에 해당되는 DC모터 2개를 제어할 수 있으며 각 모터당 800mA의 연속 전류를 허용합니다. 그렇기 때문에 큰

사이즈의 모터보다는 작고 컴팩트한 소형 모터를 제어하기에 적합하며, 아두이노의 5V 출력 혹은 외부전원을 입력받아 모터에 공급해줄 수 있습

니다. 아두이노의 5V핀에 연결할 경우 ~5V ~300mA 모터까지 사용할 수 있으며, 외부 전원을 입력할 경우 ~2.5~12V ~800mA 모터를 사용할

수 있습니다. (외부 전원이 받쳐준다는 전제하에)








아두이노 코드 (Arduino IDE)

                                                                                                                                                                                                                                                                                                        


모터드라이버의 VCC와 GND는 모터에 전원을 입력하기 위한 단자이며, Motor A와 Motor B핀은 모터에 PWM 신호를 입력하기 위한 단자입니다.

모터는 PWM신호를 입력받음으로써 방향과 속도가 변하게되며, PWM 신호는 아두이노에 코드(프로그램)를 입력함으로써 제어할 수 있습니다.



void setup() {

  pinMode(5, OUTPUT);              // 5번핀을 출력모드로 설정합니다.

  pinMode(6, OUTPUT);              // 6번핀을 출력모드로 설정합니다.

  pinMode(9, OUTPUT);             // 10번핀을 출력모드로 설정합니다.

  pinMode(10, OUTPUT);           // 11번핀을 출력모드로 설정합니다.

}

void loop() {

  analogWrite(5, 0);                   // 5번핀에 0(약 3V)의 신호를 출력합니다.

  analogWrite(6, 150);              // 6번핀에 150(0V)의 신호를 출력합니다.

  analogWrite(9, 0);                  // 9번핀에 0(약 3V)의 신호를 출력합니다.

  analogWrite(10, 150);           // 10번핀에 150(0V)의 신호를 출력합니다.

  analogWrite(5, 150);             // 5번핀에 150(약 3V)의 신호를 출력합니다.

  analogWrite(6, 0);                 // 6번핀에 0(0V)의 신호를 출력합니다.

  analogWrite(9, 150);            // 9번핀에 150(약 3V)의 신호를 출력합니다.

  analogWrite(10, 0);              // 10번핀에 0(0V)의 신호를 출력합니다.

  delay(3000);                         // 3초간 대기

}

  

 


모바일 버전으로 보기