Arduino UNO作為一個多功能且易於使用的開源微控制平台,已經成為眾多電子愛好者和創客的首選工具。在本篇文章中,我們將探討如何利用Arduino UNO來設計一款獨特的霹靂燈。無論你是Arduino初學者還是有經驗的開發者,這個項目都會提供一個富有創意且實用的學習機會。從基本的電路連接到程式碼編寫,我們將一步步引導你完成這個充滿樂趣的燈飾創作。加入我們,讓我們一起打造一個光彩奪目、能為你的居家或工作空間帶來獨特氛圍的霹靂燈。
實驗準備材料
- LED x 5顆
- 220Ω電阻 x 5顆
- 杜邦線 x 6條
- 麵包板 x 1片
設計邏輯想法
- 將5顆LED分別接線在Arduino UNO的8,9,10,11,12號腳位,使得8號燈依次亮暗至12號燈。
- 到12號燈亮完後,再由12號燈開始往回亮滅至8號燈,成為5顆LED燈左右來回亮滅。
程式流程圖

程式設計
在上一篇”LED跑馬燈設計教程“,我們使用了”for”迴圈設計出一個單方向的LED輪流亮滅的程式,此篇我們再設計一段for迴圈,讓這LED燈組能來回亮滅,設計出霹靂燈效果。
程式解釋
- 在開始時,再宣告一個整數”j”,做為另一組計數
- 直接在loop程式中,再增加一組for迴圈,設定j=LED5,當它大於LED1時,j將會計數減1,直到LED1
- 此時不知大家有沒有注意到原上篇中的i<=LED5,修改為i<LED5;而另一段for迴圈中,設定j也只有>LED1,原因當我們再讓計數等於最初和最後的LED燈時,計數將會再計算一次,停留多亮一秒再往下一個LED燈亮,大家可以試著修改這運算式,觀察這情形
const byte LED1 = 8; //宣告變數給LED1~5
const byte LED5 = 12;
int i; //宣告一個整數i,以做為計數用
int j; //宣告另一個整數j,做為計數用
int dt = 1000; //宣告dt為1000,做為delay time用
void setup() {
// put your setup code here, to run once:
for (i = LED1; i <= LED5; i++) { //使用for迴圈指令依次將LED1~5設定為輸出
pinMode(i, OUTPUT);
}
}
void loop() {
// put your main code here, to run repeatedly:
for (i = LED1; i < LED5; i++) { //用for迴圈指令將LED1~5依次亮暗
digitalWrite(i, HIGH);
delay(dt);
digitalWrite(i, LOW);
}
for (j = LED5; j > LED1; j--) { //用for迴圈指令將LED5亮滅回到LED1
digitalWrite(j, HIGH);
delay(dt);
digitalWrite(j, LOW);
}
}
實物接線

實物執行影片
結論
經過一系列的學習和實踐,我們成功利用for迴圈創造了一款個性化的霹靂燈。這個項目不僅提升了我們對Arduino編程和電子硬體的理解,也為創造性思維和技術創新提供了一個絕佳的展示平台。從基礎到實踐的過程中,我們體驗到了自製燈飾的樂趣與成就感。希望這篇文章能激發更多人對Arduino和DIY項目的興趣,開啟你們自己的創客之旅。
有主意,就動手!下一篇見~
