學習目標  2唸經

 

(一)數位輸出控制

 

(二)Ardiuno語法基礎:主體架構、陣列、迴圈

 

(三)基本函式:setup( )loop( )pinMode( )digitalWrite( )delay ( )delayMicroseconds( )

 

(四)fritzing 的使用。

 

 


 

EX 3-1:單顆LED亮、滅控制 

 

3-01.JPG  

 


 

//單顆 LED 亮、滅控制

void setup()

{

  pinMode(8,OUTPUT);            //設定第8腳為輸出

}

 

void loop()

{

  digitalWrite(8,HIGH);          //點亮LED

}

 

  

 

 

Arduino 的編輯環境本身有顏色校正功能

 

 3-02.jpg  

 

 

  

 

底下有三個錯誤

 

 3-03.JPG  

 

 【解答】

  不告訴你…1大笑

 

 

 

 

 

 

 

 

  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;         //定義第1013腳接 LED

const int LED11=11;         //定義第1013腳接 LED

const int LED12=12;         //定義第1013腳接 LED

const int LED13=13;         //定義第1013腳接 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};         //定義第1013腳接 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);

}

 

 

  

 


 

 

 Test 3-1:六顆LED紅綠燈:綠燈亮3秒,黃燈亮1秒  0問號  

 

 

http://electronics520.pixnet.net/blog/post/388156166 

 

// 六顆 LED 紅綠燈

const int LED[6]={8,9,10,11,12,13};         //定義第813腳接 LED

 

 

 

需以fritzing 畫圖

 

 


 

 

EX 3-3c:四顆 LED,單顆左移循環:陣列宣告 + 迴圈

 

 

 

// 四顆 LED,單顆左移循環

const int LED[4]={10,11,12,13};         //定義第1013腳接 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);

  }

}

 

 


 

Test 3-2:八顆LED跑馬燈:陣列宣告 + 迴圈   3小新1.gif    

 

 http://electronics520.pixnet.net/blog/post/388156166

// 八顆 LED跑馬燈

const int LED[8]={6,7,8,9,10,11,12,13};         //定義第613腳接 LED

 

 

 


 

 

Test 3-3:四顆LED完成「0000 1111」的計數  2驚嚇流淚  

 

1)「亮 1」、「滅 0」。

 

2)循環四次後,LED停止動作。

 

  

 

http://electronics520.pixnet.net/blog/post/388156166 

// 四顆LED完成「0000 1111」的計數

//1)「亮 1」、「滅 0」。

//2)循環四次後,LED停止動作。

 

const int LED[4]={10,11,12,13};         //定義第1013腳接 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);

 

 

 

}

 

 

 

 

 

 


 

討論:

Test練習題中,可得知:0暈  

 

 

(一)Arduino的缺點:輸入/輸出接腳不足。(但這也優點)

 

 

(二)Arduino的缺點:無法像8051一樣,一次指定一個「埠」。(但這也優點)

 

 

(三)熟悉各項「語法、指令、函式」可大幅縮短程式的編寫。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 electronics520 的頭像
    electronics520

    矽夢人生

    electronics520 發表在 痞客邦 留言(0) 人氣()