上一篇介紹按鈕控制LED燈的方法現在我們要結合之前所學的LED跑馬燈(二)來做一個小實驗,就是按鈕按下時LED燈不亮,放開後繼續從上次亮完的燈泡繼續,也就是用按鈕來達到暫停的效果。材料這邊就不介紹了。
電路圖
程式https://drive.google.com/file/d/0B-z-UZB41PNbVzFpdlQzdkpSSms/view?usp=sharing
========================================================================
byte LED [ ] ={2,4,6,8}; //宣告LED陣列
byte sum = sizeof(LED); //陣列內空間總數
int buttonstatus =0; //宣告按鈕變數
void setup() //在setup裡面的程式只會執行一次
{
for (byte i=0 ; i<sum ; i++) //sum=4
{pinMode(LED[i], OUTPUT); } //將D2,D4,D6,D8設定為輸出
pinMode(7, INPUT); //將D7設定為輸入模式
}
void loop() // 在LOOP裡面的程式會一直重複執行
{
for(int i=0; i<sum ;i++)
{
buttonstatus = digitalRead(7); //讀取按鈕的電位(高電位為1,低電位為0)
if(buttonstatus == 1 ) //如果按鈕狀態為高電位(1)
{ do //執行
{ buttonstatus = digitalRead(7); //讀取按鈕的電位(高電位為1,低電位為0)
delay(1000); //延遲1秒
}while(buttonstatus == 1); //當按鈕狀態為高電位(1)時重複此迴圈
}
digitalWrite(LED[i], HIGH); //將LED[i]寫入(設定)為高電位(1)
delay(500); //延遲500毫秒
digitalWrite(LED[i], LOW); //將LED[i]寫入(設定)為低電位(0)
delay(500); //延遲500毫秒
}
}
========================================================================
do{ }while(條件式成立時重複此迴圈,不成立時跳出);