PCA9685 16채널 12비트 PWM 서보 드라이버
일반
여러 개의 서보 모터 및 LED를 제어할 수 있는 16채널, 12비트 PWM (Pulse Width Modulation) 드라이버입니다. 주로 로봇, 드론, RC 차량 및 조명 제어와 같은 다양한 애플리케이션에서 사용할 수 있습니다. I2C 인터페이스를 사용합니다.

사용 가능한 GPIO
- 라즈베리파이 0~4
- 라즈베리파이 5
- 비글본 블랙/그린
- 젯슨 나노
- FT232H, FT2232H, FT4232H
- MCP2221
I2C 주소
보드의 A0~A5 점퍼의 연결 여부에 따라 I2C 주소를 다르게 설정할 수 있습니다.


명령
[INIT]
초기 설정을 입력합니다.
항목 | 타입 | 설명 |
---|---|---|
Frequency (Hz) * | WRITE | 출력 주파수를 설정합니다. (24~1526Hz) |
채널 별로 다른 주파수를 설정할 수 없으며 모든 채널에 대해 동일한 주파수 설정이 적용됩니다.
서보 모터를 제어할 경우 50Hz 주파수를 사용해야 합니다.
서보 모터를 제어할 경우 50Hz 주파수를 사용해야 합니다.
[SET_PWM]
PWM 신호를 출력합니다. HIGH 신호가 시작되는 오프셋 및 HIGH 신호가 유지되는 듀티 사이클을 %로 설정할 수 있습니다.
항목 | 타입 | 설명 |
---|---|---|
채널 | WRITE | PWM 신호를 출력할 채널 (핀) 번호를 입력합니다. (0~15) |
Offset (%) | WRITE | PWM 사이클에서 HIGH가 시작되는 오프셋을 입력합니다. (0~100%) |
Duty Cycle (%) | WRITE | PWM 사이클에서 HIGH가 유지되는 듀티 사이클을 입력합니다. (0~100%) |
[SET_SERVO]
서보모터의 위치를 설정합니다.
항목 | 타입 | 설명 |
---|---|---|
채널 | WRITE | PWM 신호를 출력할 채널 (핀) 번호를 입력합니다. (0~15) |
펄스 폭 (ms) * | WRITE | 입력 펄스 폭 (pulse width)를 ms로 입력합니다. |
* 서보모터의 각도 또는 속도에 따른 펄스폭은 제품마다 다를 수 있으나 일반적으로 아래와 같습니다.
– 1ms (최소위치) ~ 2ms (최대위치) 또는 0.544ms (최소위치) ~ 2.4ms(최대위치)
– 입력한 각도만큼 회전하지 않는 경우는 제품의 사양서를 참고하여 입력 펄스폭을 적절히 조절해야 합니다.
– 1ms (최소위치) ~ 2ms (최대위치) 또는 0.544ms (최소위치) ~ 2.4ms(최대위치)
– 입력한 각도만큼 회전하지 않는 경우는 제품의 사양서를 참고하여 입력 펄스폭을 적절히 조절해야 합니다.
예제
목표
대시보드 슬라이더 위젯으로 펄스 폭을 0.5~2.4ms 범위에서 변경하여 서보 모터의 각도를 조절합니다.
부품
부품 | 갯수 |
---|---|
라즈베리파이 4 * | 1 |
PCA9685 | 1 |
서보모터 | 1 |
* 다른 하드웨어를 사용할 수도 있습니다. 사용 가능한 GPIO를 참고하세요.
연결
DC 전원 * | PCA9685 | 서보모터 | GPIO |
---|---|---|---|
+ | V+ | ||
– | GND | ||
VCC | 3.3V | ||
GND | GND | ||
SCL | 3 (I2C1 SCL) | ||
SDA | 2 (I2C1 SDA) | ||
PWM 0 | 노란색 또는 주황색 | ||
V+ | 빨간색 | ||
GND | 검은색 또는 갈색 |
* 사용하는 서보 모터의 전압과 소모 전류에 맞는 DC 전원을 연결합니다.
