Arduino ESP32:使用 ledcWrite 函数淡入淡出LED
- 📌Arduino esp32有关LEDC功能介绍原文档:
https://espressif-docs.readthedocs-hosted.com/projects/arduino-esp32/en/latest/api/ledc.html
- 📍有关Arduino ledc API功能函数在相关篇里进行了一一介绍《Arduino ESP32:PWM驱动LED的ledcWrite功能》
- 🔖功能说明:esp32 使用 ledcWrite 函数淡入淡出LED
📝实例代码
#define LEDC_CHANNEL_0 0
#define LEDC_TIMER_13_BIT 13
#define LEDC_BASE_FREQ 5000
#define LED_PIN 18
int brightness = 0;
int fadeAmount = 5;
void ledcAnalogWrite(uint8_t channel, uint32_t value, uint32_t valueMax = 255) {
uint32_t duty = (8191 / valueMax) * min(value, valueMax);
ledcWrite(channel, duty);
}
void setup() {
ledcSetup(LEDC_CHANNEL_0, LEDC_BASE_FREQ, LEDC_TIMER_13_BIT);
ledcAttachPin(LED_PIN, LEDC_CHANNEL_0);
}
void loop() {
ledcAnalogWrite(LEDC_CHANNEL_0, brightness);
brightness = brightness + fadeAmount;
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
delay(20);
}