BASIC4MCU | 질문게시판 | 라인 드라이버 엔코더 관련 질문이 있습니다.
페이지 정보
작성자 모터무 작성일2019-08-27 09:12 조회6,837회 댓글2건본문
안녕하세요. 아두이노 듀(Due) 로 DC 엔코더 모터 를 위치제어 를 진행중에 있습니다.
첨부된 사진과 같이 라인 드라이버 출력 엔코더 사용시에 IC 를 사용하지 않고 A와B 신호 만을 연결하여 사용중 입니다.
그러나 노이즈로 인해 엔코더의 값이 튀는현상이 있어 문제 입니다.
무조건 라인드라이버를 사용해야 하나요? 제가 알기론 장거리 통신시에는 무조건 사용해야 하지만 단거리에는
문제가 없다고 알고있습니다.
엔코더의 튀는 값을 잡으려면 라인 드라이버를 사용해야 할까요?
아니면 Z신호를 뺴고 A,/A,B,/B 를 모두 아두이노 듀에 직접연결하여 제어가 가능할까요?
댓글 2
조회수 6,837master님의 댓글
master 작성일
값이 튄다는 의미가 여러가지 일 것 같은데요
A 또는 B 신호 하나만 보더라도 전압 레벨이 흔들릴 때도 튄다는 표현을 쓸테고요
전기적으로 안정된 레벨을 얻어야하므로 라인드라이버가 의미가 있겠습니다.
어떤 것이 동작할 때 노이즈가 발생하며, 노이즈 크기는 얼마나 될까요?
회로도 및 오실로스코프로 측정한 노이즈 사진등이 없으므로 조언해드릴 부분이 없군요
//
전기적인 흔들림 문제는 없지만
기계적인(or 광학적인) 진동에 의해서 값이 변할 수가 있습니다.
예를들면 엣지 부분에서 모터가 멈춰있고 진동에 의해서 엣지가 발생한다면 오차를 일으킵니다.
https://www.basic4mcu.com/bbs/board.php?bo_table=gesiyo13&wr_id=231
윗글 참고하시고요
2체배 혹은 4체배 방식으로 읽으면 됩니다.
//
80KHz처럼 고속인 펄스를 2체배 혹은 4체배로 읽는 것은 어려운 문제입니다.
그림에선 90도씩 펄스가 그려져있지만 기계식이든 광학식이든 오차가 많은데
특히 저가의 엔코더 출력은 오차가 큽니다.
오차가 클 수록 특정 위상의 폭이 더 작아지므로 계산값보다 더 짧은 시간에 처리해야하는 문제가 발생합니다.
게이트를 사용해서 천천히 읽어도 되도록 변경하세요
모터무님의 댓글
모터무
답변 감사합니다!