☛ 功能說明
使用 Arduino 開發板控制 LED 單燈右移,同時將 LED 目前狀態傳送至電腦中。 當 LED 亮時,狀態為邏輯 1 ;當 LED 暗時,狀態為邏輯 0。 將 Arduino 與電腦連接,然後將程式上傳至 Arduino 開發板,再開啟 Serial Monitor 視窗來顯示所傳送的內容,如下圖所示。
☛ 使用材料
Arduino UNO R3 開發板 × 1、電阻 220Ω × 4、紅色 LED × 4。
☛ 電路圖及麵包板接線圖
☛ 程式碼
int led[]={3,4,5,6}; //數位接腳 3~6 連接至四個 LED int i=0,j; //LED 編號 void setup() { Serial.begin(9600); //初始化序列埠, 設定鮑率為 9600bps for(int i=0;i<4;i++) pinMode(led[i],OUTPUT); //設定數位接腳 3~6 為輸出模式 } void loop() { Serial.print("LED = "); //顯示 for(j=0;j<4;j++) { if(j==i) Serial.print(" 1 "); //LED 亮,則顯示 1 else Serial.print(" 0 "); //LED 暗,則顯示 0 } Serial.println(); //換下一行 digitalWrite(led[i],HIGH); //點亮第 i 個 LED delay(1000); //延遲 1 秒 digitalWrite(led[i],LOW); //關閉第 i 個 LED i++; //右移 if(i>3) //已經移位至最右? i=0; //重設初值 }
☛ 練習
㈠ 設計 Arduino 程式,使用 Arduino 開發板控制 LED 單燈左移,同時將 LED 目前狀態傳送至電腦中。 當 LED 亮時,狀態為 HIGH;當 LED 暗時,狀態為 LOW。
int led[]={3,4,5,6}; //數位接腳 3~6 連接至四個 LED int i=3,j; //LED 編號 void setup() { Serial.begin(9600); //初始化序列埠, 設定鮑率為 9600bps for(int i=0;i<4;i++) pinMode(led[i],OUTPUT); //設定數位接腳 3~6 為輸出模式 } void loop() { Serial.print("LED = "); //顯示 for(j=3;j>=0;j--) { if(j==i) Serial.print(" 1 "); //LED 亮,則顯示 1 else Serial.print(" 0 "); //LED 暗,則顯示 0 } Serial.println(); //換下一行 digitalWrite(led[i],HIGH); //點亮第 i 個 LED delay(1000); //延遲 1 秒 digitalWrite(led[i],LOW); //關閉第 i 個 LED i--; //左移 if(i<0) //已經移位至最左? i=3; //重設初值 }
㈡ 設計 Arduino 程式,使用 Arduino 開發板控制 LED 單燈閃爍左移,同時將 LED 目前狀態傳送至電腦中。 當 LED 亮時,狀態為 HIGH;當 LED 暗時,狀態為 LOW。
int led[]={3,4,5,6}; //數位接腳 3~6 連接至四個 LED int i=3,j; //LED 編號 void setup() { Serial.begin(9600); //初始化序列埠, 設定鮑率為 9600bps for(int i=0;i<4;i++) pinMode(led[i],OUTPUT); //設定數位接腳 3~6 為輸出模式 } void loop() { Serial.print("LED = "); //顯示 for(j=3;j>=0;j--) { if(j==i) Serial.print(" 1 "); //LED 亮,則顯示 1 else Serial.print(" 0 "); //LED 暗,則顯示 0 } Serial.println(); //換下一行 flushing(); //LED 閃爍副程式 i--; //左移 if(i<0) //已經移位至最左? i=3; //重設初值 } void flushing() //LED 閃爍副程式 { for(int k=0;k<2;k++) { digitalWrite(led[i],HIGH); delay(250); digitalWrite(led[i],LOW); delay(250); } }