- 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); // 延迟,控制呼吸灯的速度
- }
|