PWM 신호 출력
일반
설정한 주파수(Frequency, Hz)와 Duty Cycle(%)로 PWM(Pulse Width Modulation) 출력을 발생시킵니다. LED밝기제어, 서보모터, DC모터 제어등 다양한 목적에 사용될 수 있습니다. 라즈베리파이 0~4에서만 사용 가능합니다.

모든 GPIO 핀을 사용할 수 있지만 출력 주파수가 아래의 주파수 중 1개로 제한됩니다.
10, 20, 40, 50, 80, 100, 160, 200, 250, 320, 400, 500, 800, 1000, 1600, 2000, 4000, 8000 Hz (GPIO 샘플시간 5us 기준)
만약 출력 주파수를 자유롭게 설정하고 싶다면 하드웨어 PWM 신호 출력을 이용합니다.
10, 20, 40, 50, 80, 100, 160, 200, 250, 320, 400, 500, 800, 1000, 1600, 2000, 4000, 8000 Hz (GPIO 샘플시간 5us 기준)
만약 출력 주파수를 자유롭게 설정하고 싶다면 하드웨어 PWM 신호 출력을 이용합니다.
사용 가능한 GPIO
- 라즈베리파이 0~4
명령
[INIT]
PWM 주파수(Frequency)와 해상도(Full Step Range)를 설정합니다.
항목 | 타입 | 설명 |
---|---|---|
GPIO 핀 | WRITE | PWM 출력을 사용할 GPIO핀을 설정합니다. |
Frequency (Hz) | WRITE | 출력주파수를 설정합니다. (0~8,000Hz) |
Full Step Range * | WRITE | 출력신호의 해상도를 설정합니다. (25~40,000) |
* Duty Cycle 을 얼마나 세밀하게 조절할 것인가를 설정합니다.
예) 255 -> 0~100%를 255 단계로 조절할 수 있습니다.
예) 255 -> 0~100%를 255 단계로 조절할 수 있습니다.
[SET_DUTY_CYCLE]
입력한 Duty Cycle로 PWM 신호를 출력합니다.
항목 | 타입 | 설명 |
---|---|---|
Duty Cycle (%) | WRITE | 입력한 Duty Cycle의 PWM 신호를 출력합니다. (0~100%) |
[READ_PWM]
출력되는 PWM 신호의 실제정보를 읽어옵니다.
항목 | 타입 | 설명 |
---|---|---|
Frequency(Hz) * | READ | 실제 출력주파수 입니다. |
Full step range | READ | 실제 출력해상도 (Full Step Range)입니다. |
Step ** | READ | 실제 출력 Step입니다. |
* 사용자가 입력한 주파수가 앞서 언급한 주파수 중 하나에 해당하지 않는다면 가장 근접한 주파수가 출력됩니다.
** 예: Full step range 250, 50% duty cycle → 125
** 예: Full step range 250, 50% duty cycle → 125
예제
목표
대시보드의 슬라이더 위젯으로 PWM신호의 듀티사이클(%)을 0~100% 사이에서 조절하면 빨간색 LED의 밝기를 변경합니다.
부품
부품 | 갯수 |
---|---|
라즈베리파이 4 | 1 |
빨간색 LED | 1 |
220Ω 저항 * | 1 |
* 저항의 용량 선정 방법은 여기를 참고합니다.
연결
부품1 | 부품2 | GPIO |
---|---|---|
LED + 핀 | | 18 |
LED – 핀 | 220Ω 저항 | GND |
