呼吸燈再加閃爍效果

 

int led = 9;               // LED 接腳(需具備 PWM 功能)

int brightness = 0;        // 初始亮度

int fadeAmount = 5;        // 每次亮度變化的幅度

bool breathing = true;     // 控制是否進行呼吸效果


void setup() {

  pinMode(led, OUTPUT);    // 設定 LED 接腳為輸出模式

}


void loop() {

  if (breathing) {

    analogWrite(led, brightness);         // 設定 PWM 輸出亮度

    brightness = brightness + fadeAmount;


    // 若亮度達到最大或最小值,則反向變化

    if (brightness <= 0 || brightness >= 255) {

      fadeAmount = -fadeAmount;


      // 當一次完整呼吸結束後,進入閃爍模式

      breathing = false;

    }


    delay(30); // 呼吸變化延遲

  } else {

    // 閃爍效果:快速開關 LED 幾次

    for (int i = 0; i < 3; i++) {

      digitalWrite(led, HIGH);

      delay(100);

      digitalWrite(led, LOW);

      delay(100);

    }


    // 重設亮度與狀態,回到呼吸模式

    brightness = 0;

    fadeAmount = 5;

    breathing = true;

  }

}


留言