[아두이노야 놀자]<12>직류모터 제어해보기

직류(DC)모터.
<직류(DC)모터.>

직류(DC)모터는 대부분의 회전하는 전자 기기에 적용할 수 있습니다. DC모터로 무엇을 만들 수 있을까요. 여름철 필수품인 선풍기를 비롯해 RC카의 바퀴, 드론의 날개, DVD 플레이어 등에 활용됩니다.

DC모터는 각도 제한이 없는 무한회전 서보모터와 비슷해 보일 수 있지만 회전방향과 속도를 제어할 수 있다는 점이 다릅니다. 무한회전 서보모터는 제어할 수 없습니다. DC모터를 사용하기 위해서는 트랜지스터와 다이오드, 두 가지 새로운 모듈에 대해 알아둬야 합니다.

트랜지스터는 전류를 제어, 증폭하는 모듈입니다. 3극으로 돼있으며 전류가 들어가면 증폭돼 전달됩니다. DC모터는 높은 전력을 사용하기 때문에 5V핀에 직접 연결하면 아두이노에 무리가 갈 수 있으니 디지털 핀의 작은 전류를 트랜지스터로 증폭시켜 사용하는 것이 좋습니다. 다이오드는 전류가 한 방향으로만 흐르도록 하는 모듈입니다.

DC모터 제어를 위해 필요한 준비물은 아두이노(UNO), USB 케이블, 브레드 보드 각 1개씩, 전선 5개 정도, 저항 330옴 1개, 트랜지스터, 다이오드, DC모터가 필요합니다. 엔트리로 DC모터를 조작할 수 있도록 만들어봅시다.

[그림 1] 오브젝트 구성하기
<[그림 1] 오브젝트 구성하기>

먼저 [그림 1]과 같이 오브젝트를 구성합니다. 엔트리봇은 왼쪽 눈 아이콘을 클릭해서 모양을 숨기고 엔트리봇 표정의 크기는 50 정도로 줄입니다. 두 오브젝트 y좌표를 〃50으로 수정해요. 글상자도 추가합니다. 글자 색과 글상자 색을 마음대로 정하고, y좌표는 50 정도로 수정해줍니다.

[그림 2] 드래그 구현
<[그림 2] 드래그 구현>

'엔트리봇 표정' 오브젝트에서 코딩합니다. [그림 2]에서 표정을 클릭하면 마우스의 x좌표를 따라 이동합니다. 단, -150~150 사이 위치에서만 이동합니다. 클릭을 해제했다면 마우스를 따라 움직이는 동작을 멈춥니다.

[그림 3] 슬라이드 바
<[그림 3] 슬라이드 바>

이번엔 [그림 3] 슬라이드 바에서 '엔트리봇' 오브젝트를 선택하고, 붓의 색과 굵기를 정하도록 코딩합니다. 이어 x좌표에서 〃150부터 '엔트리봇 표정'이 있는 위치까지 그리고 지우는 작업을 반복합니다. 이렇게 하면 실행 화면에서 선의 길이를 자유롭게 조절할 수 있게 됩니다.

[그림 4] 전류량 표시하기
<[그림 4] 전류량 표시하기>

마지막으로 [그림 4]와 같이 글상자에 전류량을 표시하겠습니다. 먼저 글상자의 내용을 [전류량 : ]으로 하고 '엔트리봇 표정'의 x좌표값을 뒤에 이어서 씁니다. 하지만 그대로 쓰는 것은 아니고 x좌표 값과 같은 비율로 0에서 255(최대값) 사이의 값으로 변환해 적용합니다.

DC모터와 연결돼 있는 디지털 3번 핀에도 똑같은 값을 적용합니다. 그러면 방금 만든 슬라이드 바를 통해 모터를 제어할 수 있게 됩니다. 또 회로에 버튼을 추가해 버튼을 누르고 있을 때만 모터가 돌아가도록 만들 수도 있고, 가변저항을 추가해서 모터의 회전력을 직접 조작하는 응용도 가능합니다.

김지원 커넥트재단 연구원

위방향 화살표