學習任何一種微控制器的時候開始都是對LED的控制,學習Arduino也不例外,之前我們控制過一個LED,使用按鍵控制LED,這次是給大家分享使用Arduino控制多個LED實現多種閃爍效果的經驗,希望幫助到大家。
工具/原料
Arduino 實驗套件(Arduino UNO控制器,麵包板,跳線,USB資料線)
5mm 發光二極體 紅色 * 2 個、黃色 * 2 個、綠色 * 2 個
470歐姆直插電阻 * 6 個
方法/步驟
準備實驗需要用到的硬體,如圖所示:
如下圖所示進行硬體的連線,此步我們先不連線發光二極體,只需將Arduino UNO控制器連線到電腦
將下列程式複製到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 IDE 軟體會顯示如下結果
按照下圖中的電路,進行實驗硬體的連線
實驗效果如圖所示:程式中turn1()函式作用是使6個LED順序點亮,再順序熄滅;turn2()函式作用使6個LED一齊閃爍頻率為300ms;turn3()函式作用是兩兩燈閃爍;clean()函式熄滅6只LED,6個LED發光二極體會迴圈執行幾種效果,直到Arduino UNO 控制器斷電為止。
程式碼回顧:
(1)for(n=8;n<=13;n++) 迴圈語句
for迴圈開頭有3個部分:(初始化;條件;增量計數){ //語句 }
“初始化”只在迴圈開始執行一次。每次迴圈,都會檢測一次條件;如果條件為真,則執行語句和“增量計數”,之後再檢測條件。當條件為假時,迴圈終止。
(2)void turn1()
宣告功能函式,聲明後,可以在loop()語句中呼叫。
在程式中的位置如下圖所示:
注意事項
如果經驗幫到您,就給我投一票吧!謝謝~