(一)數位輸出控制
(二)Ardiuno語法基礎:主體架構、陣列、迴圈
(三)基本函式:setup( )、loop( )、pinMode( )、digitalWrite( )、delay ( )、delayMicroseconds( )
(四)fritzing 的使用。
EX 3-1:單顆LED亮、滅控制
|
//單顆 LED 亮、滅控制 void setup() { pinMode(8,OUTPUT); //設定第8腳為輸出 }
void loop() { digitalWrite(8,HIGH); //點亮LED。 } |
Arduino 的編輯環境本身有顏色校正功能
|
底下有三個錯誤
|
【解答】
pinMode
i HIGH
;
;
EX 3-2:單顆LED閃爍
|
//單顆 LED 閃爍 const int LED=8; // 定義 LED = 第8支接腳。 void setup() { pinMode(LED,OUTPUT); // 設定第8腳為輸出。 }
void loop() { digitalWrite(LED,HIGH); // LED 亮。 delay(1000); //延遲1秒。 digitalWrite(LED,LOW); // LED 滅。 delay(1000); } |
*注意:「const int LED=8;」為全域常數宣告
EX 3-3a:四顆 LED,單顆左移循環
|
// 四顆 LED,單顆左移循環 const int LED10=10; //定義第10~13腳接 LED const int LED11=11; //定義第10~13腳接 LED const int LED12=12; //定義第10~13腳接 LED const int LED13=13; //定義第10~13腳接 LED
void setup() { pinMode(LED10,OUTPUT); // 設定第10腳為輸出。 pinMode(LED11,OUTPUT); // 設定第11腳為輸出。 pinMode(LED12,OUTPUT); // 設定第12腳為輸出。 pinMode(LED13,OUTPUT); // 設定第13腳為輸出。
}
void loop() { digitalWrite(LED10,HIGH); delay(1000); digitalWrite(LED10,LOW);
digitalWrite(LED11,HIGH); delay(1000); digitalWrite(LED11,LOW);
digitalWrite(LED12,HIGH); delay(1000); digitalWrite(LED12,LOW);
digitalWrite(LED13,HIGH); delay(1000); digitalWrite(LED13,LOW); } |
EX 3-3b:四顆 LED,單顆左移循環:陣列宣告
|
// 四顆 LED,單顆左移循環 const int LED[4]={10,11,12,13}; //定義第10~13腳接 LED
void setup() { pinMode(LED[0],OUTPUT); // 設定第10腳為輸出。 pinMode(LED[1],OUTPUT); // 設定第11腳為輸出。 pinMode(LED[2],OUTPUT); // 設定第12腳為輸出。 pinMode(LED[3],OUTPUT); // 設定第13腳為輸出。
}
void loop() { digitalWrite(LED[0],HIGH); delay(1000); digitalWrite(LED[0],LOW);
digitalWrite(LED[1],HIGH); delay(1000); digitalWrite(LED[1],LOW);
digitalWrite(LED[2],HIGH); delay(1000); digitalWrite(LED[2],LOW);
digitalWrite(LED[3],HIGH); delay(1000); digitalWrite(LED[3],LOW); } |
http://electronics520.pixnet.net/blog/post/388156166
|
// 六顆 LED 紅綠燈 const int LED[6]={8,9,10,11,12,13}; //定義第8~13腳接 LED
|
需以fritzing 畫圖
EX 3-3c:四顆 LED,單顆左移循環:陣列宣告 + 迴圈
|
// 四顆 LED,單顆左移循環 const int LED[4]={10,11,12,13}; //定義第10~13腳接 LED int i; void setup() { for (i=0;i<=3;i=i+1) { pinMode(LED[i],OUTPUT); // 設定第10~13腳為輸出。 } }
void loop() {
for (i=0;i<=3;i=i+1) { digitalWrite(LED[i],HIGH); delay(1000); digitalWrite(LED[i],LOW); } } |
// 八顆 LED跑馬燈 const int LED[8]={6,7,8,9,10,11,12,13}; //定義第6~13腳接 LED
|
Test 3-3:四顆LED完成「0000 → 1111」的計數
(1)「亮→ 1」、「滅→ 0」。
(2)循環四次後,LED停止動作。
|
// 四顆LED完成「0000 → 1111」的計數 //(1)「亮→ 1」、「滅→ 0」。 //(2)循環四次後,LED停止動作。
const int LED[4]={10,11,12,13}; //定義第10~13腳接 LED
int i;
void setup() {
// 設定第10~13腳為輸出。
}
void loop() { digitalWrite(LED[0],LOW); digitalWrite(LED[1],LOW); digitalWrite(LED[2],LOW); digitalWrite(LED[3],LOW); delay(1000);
digitalWrite(LED[0],HIGH); digitalWrite(LED[1],LOW); digitalWrite(LED[2],LOW); digitalWrite(LED[3],LOW); delay(1000);
}
|
*討論:
(一)Arduino的缺點:輸入/輸出接腳不足。(但這也優點)
(二)Arduino的缺點:無法像8051一樣,一次指定一個「埠」。(但這也優點)
(三)熟悉各項「語法、指令、函式」可大幅縮短程式的編寫。
留言列表