소개
1개 또는 2개의 GPIO핀의 값의 변화 (ON→OFF 또는 OFF→ON)을 고속으로 카운팅합니다. 로터리 엔코더 등에 사용될 수 있으며, 감지 가능한 최대 해상도는 5us (5/1,000,000초) 입니다.
명령
INIT
고속카운터의 초기설정을 입력합니다.
항목 | 타입 | 설명 |
---|---|---|
타입 | WRITE | 고속카운터의 타입을 선택합니다. (1상,2상,CW/CCW) |
핀A | WRITE | A상이 입력될 GPIO핀을 입력합니다. |
Pull up/down | WRITE | 라즈베리파이 GPIO 내부 Pull Up/Down을 설정합니다. (Off, Pull Down, Pull Up) |
- 타입: 2상 또는 CW/CCW 선택시
항목 | 타입 | 설명 |
---|---|---|
핀B | WRITE | B상이 입력될 GPIO핀을 입력합니다. |
START_COUNT
고속카운터를 시작합니다. 이 명령은 한번만 실행하면 백그라운드에서 계속 작동하므로 여러번 실행할 필요가 없습니다.
항목 | 타입 | 설명 |
---|---|---|
카운터 타입 ¹ | WRITE | 카운터의 타입을 선택합니다. (리니어 카운터,링 카운터) |
체배 ² | WRITE | 체배(해상도)를 선택합니다.(1체배,2체배,4체배) |
카운트변수 | READ | 카운트값을 저장할 변수입니다. |
¹ 카운트 타입에 따라 카운트의 범위가 결정됩니다.
• 리니어 카운터 : -2147483648 ~ 2147483647 범위를 초과하면 카운트하지 않음
• 링 카운터 : -2147483648 ~ 2147483647 범위의 최소/최대값을 초과하면 최대/최소값에서 다시 시작 (예: 2147483647을 초과하면 -2147483648에서 부터 다시 시작)
² 滯倍, Frequency Multiplier 로 주파수를 정배수로 곱한 것을 의미합니다. 2체배, 4체배는 각각 카운트의 정밀도(해상도)가 2배, 4배가 됨을 의미합니다.
• 리니어 카운터 : -2147483648 ~ 2147483647 범위를 초과하면 카운트하지 않음
• 링 카운터 : -2147483648 ~ 2147483647 범위의 최소/최대값을 초과하면 최대/최소값에서 다시 시작 (예: 2147483647을 초과하면 -2147483648에서 부터 다시 시작)
² 滯倍, Frequency Multiplier 로 주파수를 정배수로 곱한 것을 의미합니다. 2체배, 4체배는 각각 카운트의 정밀도(해상도)가 2배, 4배가 됨을 의미합니다.
STOP_COUNT
고속카운터를 중지합니다.
SET_COUNT
카운트값을 수동으로설정합니다.
항목 | 타입 | 설명 |
---|---|---|
카운트 | WRITE | 수동으로 설정할 카운트값을 입력합니다. |
REVERSE_COUNT
카운트의 증가, 감소가 반전됩니다.
항목 | 타입 | 설명 |
---|---|---|
반전 | WRITE | true 이면 증가/감소가 반전됩니다. |
예제
부품
부품 | 갯수 |
---|---|
로터리 엔코더 | 1 |
연결
로터리엔코더 | GPIO |
---|---|
CLK (A) ¹ | 18 |
DT (B) ¹ | 15 |
SW ¹ | 14 |
VCC(+) ² | 3.3V |
GND | GND |
¹ 임의의 GPIO핀에 연결할 수 있습니다.
² 반드시 3.3V에 연결해야 합니다. 5V 연결시 라즈베리파이가 손상될 수 있습니다.