고속 카운터
일반
1개 또는 2개의 GPIO핀의 값의 변화 (ON→OFF 또는 OFF→ON)을 고속으로 카운팅합니다. 로터리 엔코더 등에 사용될 수 있습니다.


사용 가능한 GPIO
- 라즈베리파이 0~4
- 라즈베리파이 5
- 비글본 블랙/그린
- 젯슨 나노
라즈베리파이 0~4 가 아닌 하드웨어에서는 초당 1000회 이상의 신호를 카운트 할 경우 오차가 발생할 수 있습니다.
명령
[INIT]
고속카운터의 초기설정을 입력합니다.
항목 | 타입 | 설명 |
---|---|---|
타입 | WRITE | 고속카운터의 타입을 선택합니다. (1상,2상,CW/CCW) |
핀A | WRITE | A상이 입력될 GPIO핀을 입력합니다. |
핀B * | WRITE | B상이 입력될 GPIO핀을 입력합니다. |
Pull up/down ** | WRITE | GPIO 내부 Pull Up/Down 저항을 설정합니다. (Off, Pull Down, Pull Up) |
* 2상 또는 CW/CCW 타입 선택시에만 표시됩니다.
** Pull up/down 저항에 대한 설명은 여기를 참고합니다.
** Pull up/down 저항에 대한 설명은 여기를 참고합니다.
[START_COUNT]
고속카운터를 시작합니다.
항목 | 타입 | 설명 |
---|---|---|
카운터 타입 * | WRITE | 카운터의 타입을 선택합니다. (리니어 카운터,링 카운터) |
체배 ** | WRITE | 체배를 선택합니다.(1체배,2체배,4체배) |
최소 카운트 | WRITE | 카운트의 최소값을 입력합니다. |
최대 카운트 | WRITE | 카운트의 최대값을 입력합니다. |
* 카운트 타입에 따라 카운트의 범위가 결정됩니다.
– 리니어 카운터 : 최소값~ 최대값 범위를 초과하면 더 이상 카운트 하지 않습니다.
– 링 카운터 : 최대값 보다 커지면 다시 최소값부터 시작하고, 최소값보다 작아지면 다시 최대값 부터 시작합니다.
** 滯倍, Frequency Multiplier 로 주파수를 정배수로 곱한 것을 의미합니다. 2체배, 4체배는 각각 카운트의 정밀도(해상도)가 2배, 4배가 됨을 의미합니다.
– 리니어 카운터 : 최소값~ 최대값 범위를 초과하면 더 이상 카운트 하지 않습니다.
– 링 카운터 : 최대값 보다 커지면 다시 최소값부터 시작하고, 최소값보다 작아지면 다시 최대값 부터 시작합니다.
** 滯倍, Frequency Multiplier 로 주파수를 정배수로 곱한 것을 의미합니다. 2체배, 4체배는 각각 카운트의 정밀도(해상도)가 2배, 4배가 됨을 의미합니다.
[STOP_COUNT]
고속카운터를 중지합니다.
[SET_COUNT]
카운트값을 수동으로설정합니다.
항목 | 타입 | 설명 |
---|---|---|
카운트 | WRITE | 수동으로 설정할 카운트값을 입력합니다. |
[REVERSE_COUNT]
카운트의 증가, 감소가 반전됩니다.
항목 | 타입 | 설명 |
---|---|---|
반전 | WRITE | true 이면 증가/감소가 반전됩니다. |
[GET_COUNT]
카운트 값을 읽어옵니다.
항목 | 타입 | 설명 |
---|---|---|
카운트 | READ | 측정한 카운트 값입니다. |
예제
목표
로터리 엔코더의 카운트 값을 대시보드 위젯에 표시합니다.
부품
부품 | 갯수 |
---|---|
라즈베리파이 4 * | 1 |
로터리 엔코더 | 1 |
* 다른 하드웨어를 사용할 수도 있습니다. 사용 가능한 GPIO를 참고하세요.
연결
아래의 핀들을 가로 방향으로 서로 연결합니다.
로터리 엔코더 | GPIO |
---|---|
CLK (A) | 18 * |
DT (B) | 15 * |
VCC(+) | 3.3V |
GND | GND |
* 모든 GPIO 핀을 사용할 수 있습니다.
