Arduino?

學習任何一種微控制器的時候開始都是對LED的控制,學習Arduino也不例外,之前我們控制過一個LED,使用按鍵控制LED,這次是給大家分享使用Arduino控制多個LED實現多種閃爍效果的經驗,希望幫助到大家。

工具/原料

Arduino 實驗套件(Arduino UNO控制器,麵包板,跳線,USB資料線)

5mm 發光二極體 紅色 * 2 個、黃色 * 2 個、綠色 * 2 個

470歐姆直插電阻 * 6 個

方法/步驟

準備實驗需要用到的硬體,如圖所示:

Arduino 控制流水燈

如下圖所示進行硬體的連線,此步我們先不連線發光二極體,只需將Arduino UNO控制器連線到電腦

Arduino 控制流水燈

將下列程式複製到Arduino IDE中,如下圖所示:

int LED1=8;

int LED2=9;

int LED3=10;

int LED4=11;

int LED5=12;

int LED6=13;

int n;

void setup()

{ //設定各個引腳的初始狀態

for(n=8;n<=13;n++)

{

pinMode(n, OUTPUT);

}

}

void loop()

{

turn1();//順序點亮,順序熄滅

clean(); //滅掉所有燈

turn2();//6燈齊閃

clean();//滅掉所有燈

turn3();

clean();//滅掉所有燈

}

void turn1() //順序點亮,順序熄滅

{

for(n=8;n<=13;n++)

{

digitalWrite(n,HIGH);

delay(300);

}

for(n=8;n<=13;n++)

{

digitalWrite(n,LOW);

delay(300);

}

}

void turn2()//6燈齊閃3次

{ for(int x=0;x<=2;x++)

{

for(n=8;n<=13;n++)

{

digitalWrite(n,HIGH);

}

delay(300);

for(n=8;n<=13;n++)

{

digitalWrite(n,LOW);

}

delay(300);

}

}

void turn3()//兩個兩個一起閃3次

{

for(int x=0;x<=2;x++)

{

digitalWrite(8,HIGH);

digitalWrite(9,HIGH);

for(n=10;n<=13;n++){

digitalWrite(n,LOW);

}

delay(300);

digitalWrite(10,HIGH);

digitalWrite(11,HIGH);

digitalWrite(8,LOW);

digitalWrite(9,LOW);

digitalWrite(12,LOW);

digitalWrite(13,LOW);

delay(300);

digitalWrite(12,HIGH);

digitalWrite(13,HIGH);

for(n=8;n<=11;n++){

digitalWrite(n,LOW);

}

delay(300);

}

}

void clean()

{ for(n=8;n<=13;n++)

{

digitalWrite(n,LOW);

}

delay(300);

}

Arduino 控制流水燈

如圖所示,選擇正確的板卡型號和埠,將程式上傳到控制器中。

Arduino 控制流水燈

Arduino 控制流水燈

如圖所示,程式上傳無誤的情況下 Arduino IDE 軟體會顯示如下結果

Arduino 控制流水燈

按照下圖中的電路,進行實驗硬體的連線

Arduino 控制流水燈

實驗效果如圖所示:程式中turn1()函式作用是使6個LED順序點亮,再順序熄滅;turn2()函式作用使6個LED一齊閃爍頻率為300ms;turn3()函式作用是兩兩燈閃爍;clean()函式熄滅6只LED,6個LED發光二極體會迴圈執行幾種效果,直到Arduino UNO 控制器斷電為止。

Arduino 控制流水燈

Arduino 控制流水燈

Arduino 控制流水燈

程式碼回顧:

(1)for(n=8;n<=13;n++) 迴圈語句

for迴圈開頭有3個部分:(初始化;條件;增量計數){ //語句 }

“初始化”只在迴圈開始執行一次。每次迴圈,都會檢測一次條件;如果條件為真,則執行語句和“增量計數”,之後再檢測條件。當條件為假時,迴圈終止。

(2)void turn1()

宣告功能函式,聲明後,可以在loop()語句中呼叫。

在程式中的位置如下圖所示:

Arduino 控制流水燈

注意事項

如果經驗幫到您,就給我投一票吧!謝謝~

相關問題答案