본문 바로가기

전자공작

로터리 엔코더(Rotary Encoder)의 작동 원리 및 사용 방법

반응형

 로터리 엔코더의 동작을 확인해 보았습니다.

<Rotary Encoder>

버튼이 없는 경우 3핀으로 구성됩니다.

왼편부터 B, C, A라고 하겠습니다.

우선 회로를 아래처럼 구성했습니다.

<Rotary Encoder Circuit>

실제 구성한 회로는 아래와 같습니다. 

<구성회로>

A와 B신호 출력핀이 5V로  풀업되어있고, 가운데 C핀은 접지로 연결됩니다.

<연결선>

이제 시계/반시계방향으로 로터리를 돌려보겠습니다.

우선 시계방향으로 돌린경우,

<시계방향, CW>

A(파랑)와 B(노랑)모두 Low로 같이 떨어지는데,

B(노랑)가 먼저 High가 되고 이후 B가 High 돌아옵니다.

 

반시계방향으로 돌린 경우,

<반시계방향, CCW>

A(파랑)이 먼저 Low로 떨어지고,

그다음 B(노랑)이 Low로 떨어집니다.

이후 동시에 High로 되는 군요.

 

위의 신호를 참조하면 A의 신호를 기준으로 하강엣지 트리거를 이용하고,

그 직후의 시점에서의 B신호값을 가지고 방향을 알 수가 있습니다.

Case1. A의 하강엣지 직후에서 B값이 Low이면 시계방향으로 한칸

Case2. A의 하강엣지 직후에서 B값이 High이면 반시계방향으로 한칸

<방법 1>

다른 방법으로 B신호의  상승엣지를 트리거를 이용해 보겠습니다.

B신호의 상승엣지 직후의 시점에서,

Case1. B의 상승엣지 직후에 B값이 Low이면 시계방향으로 한칸

Case2. B의 상승엣지 직후에 B값이 High이면 반시계방향으로 한칸

<방법 2>

마지막으로, 엔코더를 돌린 속도에 대해 알아보겠습니다.

위의 신호를 확인하는실험시,

시계방향으로 돌릴때 반시계방향으로 돌릴때 대비 훨씬 

빠르게 돌렸습니다.

시계방향으로 돌린 시점의 A가 Low가 된 시간을 보면 대략 5ms정도입니다.

반면에 반시계 방향으로 돌린 시점의 A가 Low가 된 시간을 보면 12ms정도로

시계방향으로 돌릴때 보다길게 됩니다.

이를 이용해 하강엣지 부터 상승엣지까지의 시간을 카운터로 계산한다면,

돌리는 속도를 감지할 수 있게습니다.

 

<속도측정>

이상으로 마치겠습니다.

 

다음에는 이를 이용한 실제 동작을 확인해 보도록 하겠습니다~

 

감사합니다~^^

반응형