엔코더 모터의 원리 - suakii/oddMotorStudy GitHub Wiki

모터라는 것을 이전 글에서 살펴보았습니다. 엔코더 모터란 회전하는 물체의 속도 정보를 측정하기 위해 추가적인 장비가 부착된 모터 입니다.

엔코더 값을 통해 현재 모터의 회전 속도, 회전 방향에 대한 정보를 얻을 수 있습니다.

엔코더 모터를 쓰는 이유는 결국, 회전 방향에 대한 정보와 속도 정보도 중요하지만 만일(대부분) 모터가 바퀴에 부착이 된다면 이를 통해 얼마나 이동했는지에 대한 추가적인 정보를 얻을 수 있는 이유가 큽니다.

결국 이 정보는 이동 로봇의 위치 추정에 쓰일 수 있다는 것이죠.

저희가 구입한 모터는 기어드 모터이므로 감속까지 가능한 모터입니다. 좋네요. 👍

그럼 어떻게 엔코더 모터가 자신의 회전 방향과 얼마나 회전 했는지에 대한 정보를 출력할 수 있을까요?

이를 위해서는 몇 가지 이해가 선행이 되어야 합니다. 일단 그림으로 설명을 시작합니다.

다음 그림은 Incremental Encoder 모터의 간단한 구조입니다. 그림을 자세히 보시면 회전축에 연결된 작은 틈을 빛이 통과하고 해당 빛을 위상이 서로 다른 슬롯에서 감지하는 그림이 보이실 것입니다. 이 위상은 90도 차이가 나게 만들어져 있으며 이를 통해 모터가 현재 어떠한 방향으로 회전하고 있는지에 대한 판단을 할 수 있게 됩니다. 멋지네요. 👍 ALT TEXT

다음 그림은 위의 설명을 조금 더 구체적으로 표현한 그림입니다. ALT TEXT

다음 그림에서 보면 90도의 위상 차이가 나는 구형파가 시계방향과 반 시계방향으로 돌때 첫 번재 값의 rising edge, falling edge에서의 두 번째 값과의 비교를 수행한다면 바로 방향을 알 수 있다는 것을 알 수 있습니다.

ALT TEXT

우리가 구매한 모터에는 아래 그림처럼 Hall Sensor라는 것이 달려 있고 위의 그림과 같은 개념으로 90도 차이가 나는 펄스가 만들어지게 됩니다. ALT TEXT

다음 그림은 실제 엔코더 모터의 출력을 오실로 스코프라는 장비를 통해서 그 파형을 관찰한 것입니다. 위상의 차이를 명확하게 확인할 수 있습니다. ALT TEXT

ALT TEXT