☛功能說明
利用 Arduino 開發板接腳 3~6 控制四個LED執行霹靂燈移位變化。
☛ 使用材料
Arduino UNO R3 開發板 × 1、電阻 220Ω × 4、紅色 LED × 4。
☛ 電路圖及麵包板接線圖
☛ 程式碼
const int led[]={3,4,5,6}; //LED 連接至數位接腳 3~6 int i; //LED 索引值 int j=0; //LED 索引值 int direct=0; //LED 移位方向控制 void setup() { for(i=0;i<4;i++) pinMode(led[i],OUTPUT); //設定數位接腳 3~6 為輸出模式 } void loop() { for(i=0;i<4;i++) digitalWrite(led[i],LOW); //設定第 3~6 數位接腳輸出為 LOW digitalWrite(led[j],HIGH); //設定第 led[j] 數位接腳輸出為 HIGH delay(500); //延遲 0.5 秒 if(direct==0) //LED 在最右狀態? { if(j==3) //已右移至最右方? direct=1; //改為左移 else //尚未移至最右方 j=j+1; //繼續右移 } else //LED 在左移狀態 { if(j==0) //已左移至最左方? direct=0; //改為右移 else //尚未移至最左方 j=j-1; //繼續左移 } }
☛ 練習
㈠ 設計 Arduino 程式,控制四個 LED 執行霹靂燈閃爍移位變化。
const int led[]={3,4,5,6}; //LED 連接至數位接腳 3~6 int i; //LED 索引值 int j=0; //LED 索引值 int direct=0; //LED 移位方向控制 void setup() { for(i=0;i<4;i++) pinMode(led[i],OUTPUT); //設定數位接腳 3~6 為輸出模式 } void loop() { for(i=0;i<4;i++) digitalWrite(led[i],LOW); //設定第 3~6 數位接腳輸出為 LOW Flashing(j); //LED 閃爍副程式 if(direct==0) //LED 在最右狀態? { if(j==3) //已右移至最右方? direct=1; //改為左移 else //尚未移至最右方 j=j+1; //繼續右移 } else //LED 在左移狀態 { if(j==0) //已左移至最左方? direct=0; //改為右移 else //尚未移至最左方 j=j-1; //繼續左移 } } void Flashing(int k) //LED 閃爍副程式 { digitalWrite(led[k],HIGH); delay(500); //延遲 0.5 秒。 digitalWrite(led[k],LOW); delay(500); digitalWrite(led[k],HIGH); }
㈡ 設計 Arduino 程式,控制四個 LED 變化,第一次點亮接腳 3 的 LED 燈,第二次點亮接腳 3、4 的 LED 燈,第三次點亮接腳 3 ~ 5 的 LED 燈,第四次點亮接腳 3~6 的 LED 燈。
const int led[]={3,4,5,6}; //LED 連接至數位接腳 3~6 int i; //LED 索引值 int j=1; //LED 點亮數目 void setup() { for(i=0;i<4;i++) pinMode(led[i],OUTPUT); //設定數位接腳 3~6 為輸出模式 } void loop() { for(i=0;i<4;i++) digitalWrite(led[i],LOW); //設定第 3~6 數位接腳輸出為 LOW for(i=0;i<j-1;i++) digitalWrite(led[i],HIGH); //設定第 led[i] 數位接腳輸出為 HIGH delay(500); //延遲 0.5 秒 if(j<5) //四個 LED 燈是否全亮? j++; //增加點亮 LED 燈的數目 else j=1; //LED 燈全亮,回復至最初點亮第一個 LED 燈 }