4주차_안내 : `ledcAttachPin` 함수 변경 관련 - dhryu60/SmartDevice_2025-1 GitHub Wiki
ESP32의 PWM(Pulse Width Modulation) 기능을 설정할 때 사용하는 ledcAttachPin
함수는 Arduino-ESP32 코어 버전에 따라 변경되었습니다. 이전에 사용되던 ledcAttachPin
과 ledcSetup
함수는 Arduino-ESP32 코어 버전 3.0.0부터 단일 함수인 ledcAttach
로 통합되었습니다.
https://docs.espressif.com/projects/arduino-esp32/en/latest/migration_guides/2.x_to_3.0.html#ledc
변경 사항 요약:
- 이전 버전(2.x.x):
ledcSetup(uint8_t channel, uint32_t freq, uint8_t resolution);
ledcAttachPin(uint8_t pin, uint8_t channel);
위와 같이 두 개의 함수를 사용하여 PWM 채널을 설정하고 핀에 할당했습니다.
- 새로운 버전(3.x.x 이상):
bool ledcAttach(uint8_t pin, uint32_t freq, uint8_t resolution);
이제 단일 함수인 ledcAttach
를 사용하여 핀에 주파수와 해상도를 직접 설정합니다.
해결 방법:
-
코드 업데이트: 사용 중인 Arduino-ESP32 코어 버전에 따라 코드를 수정해야 합니다.
- 코어 버전 3.x.x 이상:
ledcAttach
함수를 사용하여 PWM을 설정합니다. - 코어 버전 2.x.x: 기존의
ledcSetup
및ledcAttachPin
함수를 계속 사용할 수 있습니다.
- 코어 버전 3.x.x 이상:
-
코어 버전 확인 및 변경: 만약 기존 코드를 수정하지 않고 사용하고자 한다면, Arduino IDE에서 ESP32 보드 매니저를 통해 코어 버전을 2.x.x로 다운그레이드할 수 있습니다.
주의사항:
- 라이브러리 호환성: 사용 중인 라이브러리가 특정 코어 버전에 의존할 수 있으므로, 코어 버전을 변경할 경우 라이브러리의 호환성을 확인해야 합니다.
- 문서 확인: Espressif의 공식 문서를 참고하여 최신 API 변경 사항을 확인하는 것이 좋습니다. citeturn0search2
이러한 변경 사항을 반영하여 코드를 수정하거나 코어 버전을 조정하면 ledcAttachPin
관련 오류를 해결할 수 있습니다.