Arduino 呼吸燈實作完整教學

一、什麼是呼吸燈?

「呼吸燈」是一種 LED 亮度週期性變化的效果,看起來像是在「呼吸」——亮度慢慢變亮、再慢慢變暗。 這個效果常見於筆電電源燈、藍牙喇叭待機燈等,實現的原理是利用 PWM(Pulse Width Modulation,脈衝寬度調變) 改變 LED 的平均亮度。


二、實驗所需材料

項目數量說明
Arduino UNO(或其他相容板)1控制主板
LED 燈1任意顏色
220Ω 電阻1限流保護 LED
杜邦線若干連接使用
麵包板1測試接線方便

三、接線方式

Arduino 腳位連接元件說明
D9(或任何支援 PWM 的腳,如 D3、D5、D6、D10、D11)LED 正極(長腳)PWM 控制亮度
GNDLED 負極(短腳)經電阻後接地保護 LED 不被燒壞

接線圖簡述:

Arduino D9 — 220Ω電阻 — LED長腳(+)

LED短腳(-) — GND


四、原理說明

PWM 讓數位腳輸出高速「開關」訊號。 透過改變「開啟時間」的比例(占空比 Duty Cycle),可以讓 LED 看起來亮度不同:

  • analogWrite(pin, 0) → 完全關閉
  • analogWrite(pin, 127) → 約 50% 亮度
  • analogWrite(pin, 255) → 最亮

五、完整 Arduino 程式碼

/*

* Arduino 呼吸燈實作

* 作者:ChatGPT 教學版

* 說明:利用 PWM 讓 LED 亮度隨時間變化,形成呼吸效果

*/

const int ledPin = 9; // PWM 腳位(可改用 D3, D5, D6, D10, D11)

int brightness = 0; // LED 當前亮度(0~255)

int fadeAmount = 5; // 每次變化的亮度增減量

void setup() {

pinMode(ledPin, OUTPUT);

}

void loop() {

// 設定 LED 亮度

analogWrite(ledPin, brightness);

// 改變亮度(上升或下降)

brightness = brightness + fadeAmount;

// 若達到最亮或最暗,反轉方向

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

fadeAmount = -fadeAmount;

}

// 控制呼吸速度(數字越大越慢)

delay(30);

}

六、程式運作解釋

  • analogWrite() 輸出 PWM 訊號。
  • 每次亮度增加 fadeAmount(例如 5)。
  • 當亮度到達 0 或 255 時反向遞減。
  • 透過 delay(30) 控制整體「呼吸節奏」。

你可以修改:

  • fadeAmount → 調整亮度變化速度。
  • delay() → 改變呼吸節奏的快慢。

七、結論

本篇文章帶您用Arduino實作呼吸燈實驗。

筆者有看到還不錯的開發板,給大家參考看看,如果有興趣購買,可以透過下方連結:

點我購買Arduino Uno開發版

點我購買Arduino Mega開發版

點我購買Arduino Nano開發版

點我購買Arduino Leonardo開發版

Similar Posts