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 控制亮度 |
| GND | LED 負極(短腳)經電阻後接地 | 保護 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實作呼吸燈實驗。
筆者有看到還不錯的開發板,給大家參考看看,如果有興趣購買,可以透過下方連結:
