esp32s3呼吸灯PWM控制
#include <Arduino.h>
// 引脚与PWM配置
#define LED_PIN 5 // D5引脚
#define LEDC_CH 1 // PWM通道1
#define PWM_FREQ 5000 // 提高频率消除频闪
#define PWM_RES 8 // 8位分辨率 0~255
#define BREATHE_DELAY 30 // 亮度步进延时,数值越大呼吸越慢
void init_PWM() {
// 配置通道:频率、分辨率
ledcSetup(LEDC_CH, PWM_FREQ, PWM_RES);
// 绑定引脚
ledcAttachPin(LED_PIN, LEDC_CH);
}
void led_Breathing() {
// 渐亮 0 → 255
for(int i = 0; i <= 255; i++){
ledcWrite(LEDC_CH, i);
delay(BREATHE_DELAY);
}
// 渐暗 255 → 0(改写为倒序循环,逻辑更清晰)
for(int i = 255; i >= 0; i--){
ledcWrite(LEDC_CH, i);
delay(BREATHE_DELAY);
}
}
void setup() {
init_PWM();
}
void loop() {
led_Breathing();
}
