목차

엔코더 입력

AB상 엔코더 입력을 통해 펄스를 카운트하며, 회전 방향에 따라 증가 또는 감소합니다.

최대 2채널의 엔코더 입력을 지원하며, 채널당 최대 50kHz의 고속 펄스 입력을 처리할 수 있습니다.

각 채널의 A상/B상 입력 포트는 아래와 같이 고정되어 있습니다.

channel A상 입력 포트 B상 입력 포트
0 6 7
1 8 9

Encstart

Encstart channel

파라미터 설명
channel 엔코더 채널 번호 (0 또는 1)

지정한 채널의 엔코더 입력을 시작합니다. A상/B상 입력 포트는 채널 번호에 따라 자동으로 할당됩니다.

Encread

value = Encread(channel)

파라미터 설명
value 현재 카운트 값
channel 엔코더 채널 번호 (0 또는 1)

현재 엔코더 카운트 값을 반환합니다.

Encclear

Encclear channel

파라미터 설명
channel 엔코더 채널 번호 (0 또는 1)

카운트 값을 0으로 초기화합니다.

Encstop

Encstop channel

파라미터 설명
channel 엔코더 채널 번호 (0 또는 1)

엔코더 입력을 정지합니다.

동작 설명

예제

Dim A As Integer
Encstart 1

Do
  A = Encread(1)
  Debug Dec A, Cr
  Wait 100
  _DD(0) = A
Loop

특징

주의사항

채널 사용 제한

테스트 프로그램

엔코더 테스트 예제

이 예제는 두 개의 출력 포트를 이용하여 A/B상 엔코더 신호를 생성하고, Encread 명령으로 카운트 동작을 확인하는 테스트 프로그램입니다.

프로그램은 쿼드러처(Quadrature) 신호를 생성하여 엔코더 입력을 시뮬레이션합니다.

동작

참고

Dim tm As Integer
Dim dir As Byte   ' 0 = 정방향, 1 = 역방향

tm = 500

Freepin 16 To 17
Encstart 1

dir = 0   ' 초기: 정방향

Do
  ' 방향 입력 처리
  If In(4) = 1 Then dir = 1   ' 역방향
  If In(5) = 1 Then dir = 0   ' 정방향

  If dir = 0 Then
    ' ===== 정방향 =====
    High 16
    Low 17
    uDelay tm
    High 17
    uDelay tm
    Low 16
    uDelay tm
    Low 17
    uDelay tm

  Else
    ' ===== 역방향 =====
    Low 17
    Low 16
    uDelay tm
    High 17
    uDelay tm
    High 16
    uDelay tm
    Low 17
    uDelay tm
  End If

  _DD(0) = Encread(1)

Loop

← CUBLOC2 목차로 돌아가기