const int ledPin = 9; // 连接到LED的PWM引脚
int brightness = 0; // 亮度(占空比)
float angle = 0.0; // 角度,用于控制亮度的余弦变化
const float speed = 0.05; // 控制呼吸速度
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
// 使用余弦函数来计算亮度
brightness = (int)(127.5 * (1 + cos(angle)));
// 输出PWM信号
analogWrite(ledPin, brightness);
// 调整角度,以控制亮度变化的速度
angle += speed;
if (angle > 2 * PI) {
angle = 0; // 复位角度,形成循环
}
delay(20); // 延迟,控制呼吸灯的速度
}
|