아두이노 모터 쉴드 (R3) 사용법을 정리해 보았다. 이것을 이용하면 DC모터를 아두이노로 쉽게 제어할 수 있다.


   Arduino Motor Shield R3 page



일단 기본적인 특성은 다음과 같다.


  • 동작전압 : 5V to 12V

  • 모터제어IC: L298P (두 개의 DC모터 혹은 1개의 스테핑모터 제어 가능)

  • 최대 전류 :채널당 2A 혹은 4A(두 채널을 병렬로 연결시)

  • 전류 센싱 : 1.65V/A

  • 강제 정지(brake) 기능


 모터의 전원은 반드시 별도로 연결해 주어야 하는데 아두이노의 2.1파이 DC잭에 연결해도 되고 쉴드의 스크류단자에 전선으로 연결해도 된다. 그런데 사용 설명에는 모터 전압이 9V 이상이면 아두이노와 쉴드의 전원(Vin)을 분리하는 것이 바람직하며 '쉴드 뒷면의 "Vin Connect" 점퍼를 절단하면 된다'고 설명되어 있다. 이 경우 쉴드에 직접 인가할 수 있는 전압의 최대값은 18V이다.


 사용되는 핀은 다음과 같다.


[표 1] 모터쉴드 R3의 핀 배열

기능

채널A

채널B

기능

방향

D12

D13

회전 방향 제어

PWM

D3

D11

속도 제어

브레이크

D9

D8

HIGH일 때 강제 정지

전류 감지

A0

A1

전류 감지


[그림 1] 모터 쉴드 R3의 핀 기능


모터 회전 시에 PWM을 0 으로 인가하면 전압이 0으로 떨어지고 모터 축은 관성에 따라 천천히 멈추게 되지만 이에 반해서 Brake는 강제 정지를 할 때 사용되는 핀으로 HIGH가 되는 순간 모터가 곧바로 멈추게 된다.


 이것을 아두이노Due 와 연결해서 동작시킬때 Due의 동작 전압이 3.3V이므로 맞지 않을 것이라고 짐작했으나 다음 페이지에 설명된 대로 직접 연결해도 아무런 문제가 없다.


   Arduino Due + Motor Shiled : DC motor


단 모터 전원이 9V이상일 때는 Vin은 분리하는 것이 좋을 것 같다.


 이 쉴드에 대해서 한 가지 아쉬운 점은 PWM(A) 핀으로 3번 핀을 사용하고 있어서 인터럽트 하나를 쓰지 못하게 한다는 것이다.



Posted by 살레시오
,