스크래치 아두이노 서보모터를 연결해요

서보모터 이해하기

우리가 많이 사용하는 3개 종류의 모터가 있습니다. 바로 DC모터, 스텝(Stepper)모터, 서보(Servo)모터입니다. 이 모터들은 각각의 특징이 있고 사용법이 모두 다르기 때문에 서로의 차이점을 잘 알아야 합니다.

 

DC모터는 전기를 주면 계속 회전하는 모터입니다. 2편에서 라인 트랙 자동차를 만들 때 쓰던 모터입니다. 회전방향과 속도를 바꿀 수 있지만 원하는 각도만큼 회전하지는 못합니다. 자율 주행 자동차를 만들 때 바퀴를 움직이기 위해서 사용합니다.

 

서보모터는 원하는 만큼 회전할 수 있는 모터입니다. 서보모터 안에 톱니바퀴가 여러 개 있어서 원하는 만큼 회전할 수 있는 것이죠. 하지만 아주 큰 힘으로 회전하기는 힘듭니다. 우리가 자율 주행 자동차를 만들 때 초음파 센서와 함께 장애물이 있는지 확인할 때 사용합니다.

 

스텝모터는 DC모터와 서보모터의 장점을 갖고 있는 모터입니다. 회전 방향과 속도뿐만 아니라 회전각도도 바꿀 수 있습니다. 스텝모터는 아주 세밀하게 회전할 수 있습니다. 전기를 줄 때마다 일정한 길이만큼(스텝-step)씩 움직이는 것이죠.

 

그럼 자율 주행 자동차를 만들 때 사용하게 될 서보모터에 대해서 더욱 자세히 알아 보겠습니다. 서보모터는 머리를 움직일 수 있는 목과 같은 역할을 합니다. 서보모터에 초음파 센서를 연결하여 사용합니다.

 

서보모터가 돌면서 초음파 센서로 왼쪽-오른쪽에 물체가 있는지 확인합니다. 마치 고개를 왼쪽-오른쪽으로 돌려서 주위를 살펴보는 것과 같습니다. 서보모터는 그림 2-1과 같이 원하는 각도만큼 움직이는데 우리가 사용할 서보모터는 0도부터~180도까지 회전할 수 있습니다.

그림 2-1 서보모터

 

서보모터에는 3가지 선이 있습니다. 왜 3가지 선이 있을까요? 우선 서보모터로 전기가 흘러야 되겠죠? 전기는 플러스 극에서 마이너스 극으로 흐릅니다. 서보모터에도 전기가 흐르기 위해서는 플러스 극, 마이너스극과 연결해야 합니다. 즉 선이 2개 필요한 것이죠. 그렇다면 나머지 한 선은 무엇일까요?

그림 2-2 서보모터 선의 종류

 

 

잠시 1편에서 배웠던 내용을 다시 공부해보겠습니다.

그림 2-3 PWM 핀으로 엘이디(LED) 점점 밝게 하기

 

그림 2-3은 피더블유엠(PWM) 디지털 핀을 이용하여 엘이디(LED)를 점점 밝아지도록 코딩한 것입니다. 피더블유엠(PWM) 디지털 핀에 보내는 전압에 값에 따라서 엘이디(LED)의 밝기가 달라지는 것이죠.

 

서보모터도 이와 같습니다. 서보모터로 보내주는 전압 값에 따라서 서보모터가 0도에서 180도로 회전하는 겁니다. 서보모터에 다른 전압을 주기 위해서 선이 하나 더 필요한 겁니다. 앞으로 우리가 배울 아두이노 전자부품도 이와 비슷합니다.

 

아두이노 전자부품은 플러스 극과 연결하는 부분과 마이너스 극과 연결하는 부분이 필요합니다. 그리고 전자부품을 사용하는 방법에 따라서 필요한 선의 개수가 달라집니다.

 

2편에서 배운 모터 드라이버는 한개의 모터를 2개의 디지털 핀으로 조종합니다. 모터를 2개 사용하려면 디지털 핀 4개가 필요하고, 전기가 흘러야 하니 핀 2개가 더 필요합니다. 어때요? 참 쉽죠?

그림 2-4 모터 드라이버

 

서보모터는 선 색깔로 연결하는 곳을 알려줍니다. 갈색은 GND, 빨간색은 5V, 주황색은 피더블유엠(PWM) 디지털 핀과 연결합니다. 선 색깔이 다른 서보모터도 있습니다.

 

선 색깔이 검은색, 빨간색, 노란색인 서보모터는 검은색은 GND, 빨간색은 5V, 노란색은 피더블유엠(PWM) 디지털 핀과 연결합니다. 어두운 색은 GND, 빨간색은 5V과 연결한다고 기억하면 됩니다.

 

서보모터처럼 구멍이 있는 선은 암-수 점퍼 케이블을 이용하여 아두이노와 연결합니다. 원래 디지털 핀은 0 또는 5V 전압만 보낼 수 있습니다. 이렇게 값이 몇 개로 정해졌기 때문에 디지털 핀이라고 부릅니다. 디지털 핀을 자세히 보면 앞에 물결표시가 있습니다.

 

이 표시는 피더블유엠(PWM) 디지털 핀이라는 뜻입니다. 이 핀을 이용하면 0에서 5V 사이의 전압을 보낼 수 있습니다. 이것을 펄스폭 변조(Pulse Width Modulation: PWM) 방식이라고 합니다.

그림 2-5 디지털 핀의 종류

 

우리는 그림 2-6과 같이 피더블유엠(PWM) 디지털 9번 핀과 서보모터를 연결하겠습니다.

그림 2-6 서보모터 연결

 

우선 서보모터의 각도를 0으로 맞춰서 코딩할 준비를 합니다. 이것을 초기화라고 합니다. 원래 상태로 만드는 것이죠.

그림 2-7 초기화

 

그리고 서보모터를 90도 돌려봅시다. 어때요? 잘 되나요?

그림 2-8 서보모터 회전하기

 

서보모터가 0에서부터 180 사이를 계속 회전하도록 코딩해보겠습니다. [회전각도] 변수를 만듭니다. <~까지 반복하기> 블록을 사용하면 쉽게 코딩을 할 수 있습니다.

 

[회전각도] 변숫값이 179보다 클 때 까지 계속 [회전각도] 변수에 1씩 더해서 서보모터가 점점 돌아가게 합니다. 그리고 [회전각도] 변수가 179보다 큰 180이 되면 더 이상 반복을 하지 않고, 아래 연결된 블록을 실행합니다.

그림 2-9 <~까지 반복하기>를 이용하여 서보모터 회전하기

 

[회전각도]가 1보다 작을 때까지 반복을 하니 [회전각도]가 0이 될 때까지 계속 [회전각도] 값이 작아져서 서보모터가 원래 위치로 돌아오게 됩니다. <무한 반복> 블록을 사용했으니 계속 180도까지 회전했다가 다시 원래 위치로 돌아오는 것을 계속 반복하게 됩니다.

 

실제로 스크래치로 서보모터를 돌려보면 0도 또는 180도로 끝까지 회전하지는 않습니다. 서보모터가 실제로 돌 때 어느 정도 제한이 있다는 것도 기억해두면 좋습니다. 어때요? 참 쉽죠?

댓글 (0)

Designed by JB FACTORY