ESP32 LEDC PWM 계산기
ESP32 LEDC PWM의 주파수, duty resolution, divider, duty 값을 계산합니다. ESP-IDF와 Arduino 펌웨어 설정에 바로 쓸 수 있는 기준값을 제공합니다.
ESP32 LEDC PWM이란?
LEDC는 ESP32의 하드웨어 PWM 블록으로, LED 밝기 제어, 모터 제어, 버저 출력 등에서 주파수와 duty 해상도를 유연하게 설정할 수 있습니다.
PWM 주파수와 duty resolution 관계
같은 클럭에서 PWM 주파수를 높이면 사용할 수 있는 divider 여유가 줄어들어 duty resolution을 낮춰야 하는 경우가 많습니다.
ESP32 LEDC divider 계산 방법
실무에서 자주 쓰는 식은 pwm_freq = clock / (divider * 2^resolution) 입니다. 이를 divider = clock / (pwm_freq * 2^resolution) 형태로 계산할 수 있습니다.
자주 쓰는 ESP32 PWM 설정
| 용도 | 주파수 | 해상도 | 설명 |
|---|---|---|---|
| LED 밝기 제어 | 1 kHz | 10-12 bit | 부드러운 밝기 제어 |
| 서보 제어 | 50 Hz | 12-16 bit | 펄스 폭 제어 |
| 모터 PWM | 20 kHz | 8-10 bit | 가청 영역 위로 설정 |
| 버저 | 2 kHz | 8 bit | 간단한 톤 출력 |
| 고속 PWM | 40 kHz | 8 bit | 주파수가 높을수록 해상도 여유 감소 |
Arduino와 ESP-IDF 출력 예제 참고
클럭 소스, divider 범위, API는 ESP32 계열과 SDK 버전에 따라 달라질 수 있습니다. 이 계산값은 실무 시작점으로 사용하고 타깃 환경에서 최종 확인하세요.
FAQ
ESP32 LEDC는 무엇인가요?
ESP32 LEDC는 타이머와 해상도를 설정해 PWM 주파수와 duty를 제어하는 하드웨어 블록입니다.
PWM 주파수와 duty resolution은 어떤 관계인가요?
클럭이 고정된 상태에서 주파수를 높이면 divider 여유가 줄어들어 가능한 duty resolution 최대치가 낮아집니다.
모터나 LED에는 어떤 PWM 주파수를 쓰면 좋나요?
부하 특성에 따라 다르지만 LED는 1kHz 전후, 모터는 20kHz 같은 가청 영역 이상의 주파수를 자주 사용합니다.
ESP32 PWM 주파수가 정확히 맞지 않는 이유는 무엇인가요?
divider 스텝과 하드웨어 제약 때문에 목표 주파수를 정확히 표현하지 못하고 반올림 오차가 생길 수 있습니다.