ADVERTISEMENT
表 3 使用陣列與迴圈控制燈號程式
使用陣列與迴圈控制燈號程式(W Water_light_Array_control_Led)
int LedPins[] = {4,5,6,7,8,9,10,11} ;
int NowLedOn = 0 ;
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin Blink_Led_Pin as an output.
for(int i=0; i <8 ; i++)
{
pinMode(LedPins[i], OUTPUT); //定義Blink_Led_Pin為輸出腳位
digitalWrite(LedPins[i], LOW); // 將腳位Blink_Led_Pin設定為低電位 turn the LED off by making the voltage LOW
}
}
// the loop function runs over and over again forever
void loop() {
for (int i =0 ; i < 8; i++)
{
if (NowLedOn == i)
{
digitalWrite(LedPins[i], HIGH); // turn on Led
}
else
{
digitalWrite(LedPins[i], LOW); // turn off Led
}
}
}
程式下載:https://github.com/brucetsao/arduino_Programming_Trick
當然、如下圖所示,我們可以看到使用陣列與迴圈控制燈號程式結果畫面,
圖 2 使用陣列與迴圈控制燈號程式結果畫面
ADVERTISEMENT
整合燈號變動變數控制流水燈亮
我們發現,上圖中,程式正常執行,但是燈號只留在第一個燈,我們看看原來使用陣列與迴圈控制燈號程式,如下表所示,我們雖然使用了『NowLedOn』這個變數,來控制燈號所亮之處:
int NowLedOn = 0 ;
但是在使用陣列與迴圈控制燈號程之後所有用到『NowLedOn』這個變數的地方,卻沒有將『NowLedOn』這個變數值進行變動,難怪燈號會一直處在初始值『0』的地方。
ADVERTISEMENT
我們所知道,在 Arduino 開發版程式設計的地方,在 Setup()區只會執行一次,而loop()區則會不斷執行。(, , , , , , , , , )
所以我們如果將『NowLedOn』這個變數加在 loop()區,如下表所示
ADVERTISEMENT
表 4 改變控制燈號變動變數
NowLedOn ++ ;
if (NowLedOn >=8)
NowLedOn= 0 ;
我們將下表程式編譯完成後,上傳到開發板進行測試。
表 5 使用流水燈控制變數控制亮滅程式
使用流水燈控制變數控制亮滅程式(Water_light_Array_All)
int LedPins[] = {4,5,6,7,8,9,10,11} ;
int NowLedOn = 0 ;
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin Blink_Led_Pin as an output.
for(int i=0; i <8 ; i++)
{
pinMode(LedPins[i], OUTPUT); //定義Blink_Led_Pin為輸出腳位
digitalWrite(LedPins[i], LOW); // 將腳位Blink_Led_Pin設定為低電位 turn the LED off by making the voltage LOW
}
}
// the loop function runs over and over again forever
void loop() {
for (int i =0 ; i < 8; i++)
{
if (NowLedOn == i)
{
digitalWrite(LedPins[i], HIGH); // turn on Led
}
else
{
digitalWrite(LedPins[i], LOW); // turn off Led
}
}
NowLedOn ++ ;
if (NowLedOn >=8)
NowLedOn= 0 ;
}
程式下載:https://github.com/brucetsao/arduino_Programming_Trick
ADVERTISEMENT
當然、如下圖所示,我們可以看到使用流水燈控制變數控制亮滅程式結果畫面。
圖 3 使用流水燈控制變數控制亮滅程式結果畫面
下一頁還有更多精彩教學唷 !
ADVERTISEMENT