在Arduino UNO上設計跑馬燈時,“for”迴圈是一個非常實用的工具。首先,將LED燈接至Arduino板上的數位輸出引腳。接著,在Arduino的程式碼中使用”for”迴圈來控制每個LED燈的亮與滅。例如,設定一個迴圈從0跑到4(在程式中0也是一個值,所以設定到4即可),對應到五顆LED燈。在迴圈內部,使用digitalWrite()函數來開啟某個LED燈,然後延遲一小段時間,再關閉該LED燈。這樣,當迴圈重複執行時,LED燈就會依序亮起和熄滅,創造出跑馬燈的效果。重要的是確保迴圈可以持續地執行,這樣LED燈才會不斷地依序閃爍,形成連續的視覺效果。透過調整延遲時間和迴圈的範圍,可以創造出不同的跑馬燈模式。
實驗準備材料
- LED x 5顆
- 220Ω電阻 x 5顆
- 杜邦線 x 6條
- 麵包板 x 1片
設計邏輯想法
- 將5顆LED分別接線在Arduino UNO的8,9,10,11,12號腳位,使得8號燈依次亮暗至12號燈。
- 到12號燈亮完後,再重頭由8號燈開始亮起迴圈。
程式流程圖

程式設計(1)
先使用即想即設計的方式來設計程式,讓各腳位輪流亮滅,至最後12腳位後,再重頭亮起迴圈。
但是否有更簡易的方式來縮短程式碼呢?答案是有的,這時我們就要來借用這”for”迴圈指令了,如程式設計(2)說明。
int LED1 = 8; //宣告變數
int LED2 = 9;
int LED3 = 10;
int LED4 = 11;
int LED5 = 12;
int dt = 1000;
void setup() {
// put your setup code here, to run once:
pinMode(LED1, OUTPUT); //設定各腳為輸出
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(LED1, HIGH); //由LED1亮至LED5
delay(dt);
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
delay(dt);
digitalWrite(LED2, LOW);
digitalWrite(LED3, HIGH);
delay(dt);
digitalWrite(LED3, LOW);
digitalWrite(LED4, HIGH);
delay(dt);
digitalWrite(LED4, LOW);
digitalWrite(LED5, HIGH);
delay(dt);
digitalWrite(LED5, LOW);
}
程式設計(2)
從程式設計(1)的loop中的程式碼中,大家是否有查覺到有段的程式是相同,只是這LED的號碼變了,那我們可不可用計數器的概念來讓Arduino來幫我們計算數字,請它依每次LED停留時間結束後就往下個數字算。
這時就要用到這“for”迴圈指令,它會照我們給它的設定而依次輪流執行。
程式解釋:
- 在一開頭我們先宣告一個整數變數為”i”。
- 在setup腳位設定裏頭,就可以使用這”for”迴圈指令,括號中將i一開始為LED1,中間設定i要是<=LED5,那它加1,直到LED5,大括號裏頭就是要它來執行的動作,第一次為LED1,將它設定為OUTPUT,再回到迴圈中加1,成了LED2,再將它設定為OUTPUT,直到LED5。
- 在loop裏頭,我們依此類推,使用for迴圈來陸續執行LED1~5的亮暗動作,這樣子就完成同程式設計(1),是否很方便呢!
const byte LED1 = 8; //宣告變數給LED1~5
const byte LED5 = 12;
int i; //宣告一個整數i,以做為計數用
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);
}
}
實物接線
LED燈與電阻的詳細接線方式,可以參考上篇”如何用按鈕開關控制LED燈“中實物接線說明。

實物執行影片
結論
使用”for”迴圈於Arduino UNO設計跑馬燈展示了編程的簡潔與高效。透過迴圈控制LED燈的亮滅,我們能創造出吸引人的視覺效果,同時也加深了對程式結構和硬件操作的理解。這個實踐不僅鞏固了基本的編程概念,如迴圈和控制結構,也為進一步探索更複雜項目奠定了堅實基礎。最終,Arduino與”for”迴圈的結合體現了技術學習中的創造力與實用性。
給大家一個實習題,請設計當LED5燈亮滅後,再由它往回亮滅至第一顆LED1,也是用”for”迴圈設計一個霹靂燈來回跑的效果,請大家做做看。
有主意,就動手!下篇見~