[아두이노야 놀자]<11>서보 모터 제어해보기

[그림 1] 모터 예시.
<[그림 1] 모터 예시.>

서보 모터를 제어해봅시다. 서보 모터로 무엇을 만들 수 있나요? 모터는 지금까지 써 보았던 모듈과는 다르게 펄스 폭 변조(PWM) 신호를 통해 제어할 수 있습니다. 아날로그 핀이 아날로그 신호를 받는다면, PWM 신호는 아날로그 신호이면서 디지털 핀을 통해 받습니다. 위 [그림 1]과 같이 숫자 옆에 물결 표시가 있는 디지털 핀이 PWM 신호를 보낼 수 있습니다.

서보 모터는 어떻게 쓰일까요. 일반 서보 모터는 180도 범위 내에서 각도 조절이 가능하고, 무한 회전 서보 모터는 모든 방향으로 움직일 수 있지만 방향과 속도만 조절할 수 있습니다. 하지만 DC모터와는 다릅니다. 이번에는 일반 서보 모터를 사용할 예정입니다. 각도에 제한 범위가 있는 만큼 단순한 움직임을 보이지만 그 범위 안에서 적합하게 쓰일 것입니다.

일반 서보 모터와 무한 회전 서보 모터.
<일반 서보 모터와 무한 회전 서보 모터.>

여러분 팔다리엔 관절이 있는데 관절 각도에 제한이 있죠. 그 범위를 벗어나면 아픕니다. 기계 팔이나 인간 형태 로봇에게도 똑같이 관절이 있습니다. 이 로봇 관절 부분에 서보 모터가 들어갑니다. 자동차에 시동을 걸면 백미러가 자동으로 펼쳐집니다. 백미러가 180도 이상 돌아갈 일은 별로 없겠죠. 이런 데에서 서보 모터가 쓰이기도 합니다.

정밀한 제어가 가능한 덕분에 일상보다는 전문적 용도로 많이 쓰이는 것 같습니다. 이번에는 서보 모터를 맛보기 정도로 제어합니다. 준비물은 아두이노(UNO), USB 케이블, 브레드 보드 각 1개씩과 전선 3개 정도, 서보 모터입니다.

[그림 2] 조립 예시.
<[그림 2] 조립 예시.>

먼저 조립을 합니다. [그림 2]와 같이 전선 색에 주의해 조립해야 합니다. 빨간색은 5V, 검은색은 GND, 남은 하나는 3번(PWM)핀입니다. 엔트리 코딩을 시작합니다.

[그림 3] 변수 추가.
<[그림 3] 변수 추가.>

서보 모터 각도를 조절하기 위해 [그림 3]과 같이 '회전' 변수를 추가합니다. 슬라이드를 활성화해도 좋습니다. 하지만 슬라이드를 드래그해서 값이 급격하게 변하면 서보 모터가 잘 따라가지 못할 수 있으니 주의해야 합니다.

[그림 4] 각도 조절.
<[그림 4] 각도 조절.>

[그림 4]와 같이 스페이스 바를 누르면 회전에 10씩 더합니다. 그러면 서보 모터가 10도씩 회전할 것입니다. 최대 180도까지 회전할 수 있으므로 180도까지 회전했다면 원위치로 돌아오게 만듭니다.

[그림 5] 각도 적용.
<[그림 5] 각도 적용.>

마지막으로 [그림 5]와 같이 회전 값을 서보 모터에 적용합니다. 이제 실행해서 스페이스 바를 눌러보면 서보 모터가 조금씩 회전하다가 180도가 되면 원위치로 돌아올 것입니다. 서보 모터에서 로봇이 움직일 때 나오는 소리가 들리지 않나요. 아니면 현관문 도어락이 작동할 때 나는 소리 같기도 합니다.

서보 모터와 온도 센서를 같이 사용해서 새로운 전자 온도계를 만들 수 있습니다. 아니면 팔이나 다리 그림을 그려서 서보 모터에 붙여 보는 것도 응용방법입니다.

김지원 커넥트재단 연구원

위방향 화살표