飛上

rabe.egloos.com

포토로그



FPGA로 로터리(Rotary) 스위치 제어 by 재동이


Xilinx 의 SPARTAN-3E Starter-kit 에 있는 로터리 스위치를 제어하는 Verilog 코드를 작성하여 보았다.

로터리 스위치가 무엇인지 잘 모르는 사람이 많은데 쉽게 생각해서 옛날 흑백TV 에서 채널을 돌리는 스위치

라고 보면 된다. 일정 각도를 돌리면 '탁' 소리를 내며 고정되는 스위치이다.

<제어할 로터리 스위치의 구조>


로터리 스위치를 사용하여 절대 각도 위치의 값을 알아낼수 있는 것도 있지만 위의 그림처럼

상대적인 위치의 방향 값만 알아내는 것도 있다.

위의 방식을 인코더 로터리 스위치라고 한다. 이런 방식은 주로 모터의 방향과 속도를 측정

가능하도록 제작된 인코더 모터에 많이 사용되고 여기서 구현한 방식과 비슷한 방식으로 제어된다.


< FPGA 로 입력되는 A 신호와 B 신호>

왼쪽으로 돌리냐 오른쪽으로 돌리냐에 따라서 FPGA로 입력되는 신호가 위의 그림처럼

달라진다.

왼쪽으로 돌릴 때 입력되는 신호는 A,B 가 (0,0) -> (0,1) -> (1,1) -> (1,0 ) -> (0,0) 으로 되고

오른쪽으로 돌릴 때는 (0,0) -> (1,0) -> (1,1) -> (0,1) -> (0,0) 으로 된다.



<안정적인 제어를 위한 q1과 q2를 추가>

로터리 스위치는 기계적인 장치이기 때문에 채터링(바운싱) 이 발생하게 된다.

이러한 상황까지 고려하여 안정적인 제어를 하기위하여 위의 그림과 같이 내부적으로 q1과 q2를 사용한다.

FPGA에서는 q1의 posedge 에서 q2의 값을 보아 '0' 이면 Right로 판단하고 '1' 이면 left로 판단하면 된다.









덧글

  • 진홍물산 2014/06/26 09:45 # 삭제 답글

    안녕하세요~ 재동이님 블로거에서 좋은 정보들 많이 얻어가다가
    저도 도움이 될만한 정보가 있어서 쪽지드려요~

    부품샘플이나 소량 몇개씩 구하고 싶을때 구로 중앙유통단지까지 나가거나
    결제가 어렵거나 해서 쉽지 않은데..
    진홍물산에서는 사이트상에서
    샘플주문하거나 결제하거나 이런게 다 가능합니다.
    많은 사람들이 샘플구매에 대해 문의하시고 어려워하셔서 조금이나마 도움이될까 해서
    정보보내드립니다! ^^

    진홍물산 www.jinhong.co.kr 이구여~ 가변저항/스위치/센서..등 사이트에서
    보다 자세한 제품들 확인하실 수 있습니다.

    그럼 좋은 정보가 되었길 바라며..오늘도 좋은 하루 되세요~ ^^*

댓글 입력 영역