學習目標 2唸經  

 

(一)類比輸出控制與PWM控制

 

(二)Ardiuno語法基礎:if

 

(三)基本函式:analogWrite( )

 

(四)全彩RGB LED的使用

 

 



脈波寬度調變(Pulse Width ModulationPWM

 

4-01工作週期.png  

 


 

 

 

EX 4-1:單顆LED明、暗控制

 


 

// 單顆 LED 明、暗控制

const int LED=3;                  // 定義 LED = 3支接腳。

void setup()

{

 

}

 

void loop()

{

  int i;

  for (i=0;i<=255;i=i+5)

  {

    analogWrite(LED,i);         // 類比輸出

    delay(50);                    //亮度變化間隔50ms

  }

}

 

 


 

 

EX 4-2:兩顆LED輪流「明←→暗」控制
 

 


 

// 兩顆LED輪流←→控制

const int LED[2]={3,5};                  // 定義 LED = 35支接腳。

int i;

int phase=0;

void setup()

{

 

}

 

void loop()

{

  if (phase==0)                          //注意「phase==0」與「phase=0」的差別

  {

    for (i=0;i<=255;i=i+5)

      {

        analogWrite(LED[0],i);         // 類比輸出

        analogWrite(LED[1],255-i);

        delay(50);                    //亮度變化間隔50ms

      }

    phase=1;

  }

  else

  {

    for (i=0;i<=255;i=i+5)

      {

        analogWrite(LED[0],255-i);         // 類比輸出

        analogWrite(LED[1],i);

        delay(50);                    //亮度變化間隔50ms

      }

    phase=0;

  }

}

 

   


 

 

 

全彩 RGB LED

4-02 RGB LED1.png  

 

4-03 RGB LED.jpg  

 

 

 

 

EX 4-3:全彩RGB LED:數位輸出控制,8種變化

 

4-04 RGB LED 接線圖.JPG  

 

 


 

//全彩RGB LED 數位輸出控制,8種變化

const int LED[3]={9,10,11};                  // 定義 LED = 91011支接腳。且「紅:9」、「綠:10」、「藍:11

int i;

void setup()

{

   for (i=0;i<=2;i=i+1)

  {

    pinMode(LED[i],OUTPUT);              // 設定第9~11腳為輸出。

  }

}

 

void loop()

{

  digitalWrite(LED[0],LOW);

  digitalWrite(LED[1],LOW);

  digitalWrite(LED[2],LOW);

  delay(1000);

 

  digitalWrite(LED[0],LOW);

  digitalWrite(LED[1],LOW);

  digitalWrite(LED[2],LOW);

  delay(1000);

 

  digitalWrite(LED[0],HIGH);

  digitalWrite(LED[1],LOW);

  digitalWrite(LED[2],LOW);

  delay(1000);

 

  digitalWrite(LED[0],LOW);

  digitalWrite(LED[1],HIGH);

  digitalWrite(LED[2],LOW);

  delay(1000);

 

  digitalWrite(LED[0],HIGH);

  digitalWrite(LED[1],HIGH);

  digitalWrite(LED[2],LOW);

  delay(1000);

 

  digitalWrite(LED[0],LOW);

  digitalWrite(LED[1],LOW);

  digitalWrite(LED[2],HIGH);

  delay(1000);

  

  digitalWrite(LED[0],HIGH);

  digitalWrite(LED[1],LOW);

  digitalWrite(LED[2],HIGH);

  delay(1000);

 

  digitalWrite(LED[0],LOW);

  digitalWrite(LED[1],HIGH);

  digitalWrite(LED[2],HIGH);

  delay(1000);

 

  digitalWrite(LED[0],HIGH);

  digitalWrite(LED[1],HIGH);

  digitalWrite(LED[2],HIGH);

  delay(1000);

}

 


EX 4-4:六顆LED拖尾燈:查表法 

 


 

//六顆 LED 拖尾燈

 

};

 

  }

}

 

 


 

Test 4-1:全彩RGB LED:類比輸出控制,27種變化  2抵抗搖頭  

 


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

 

全彩RGB LED 類比輸出控制,27種變化

const int LED[3]={9,10,11};                  // 定義 LED = 91011支接腳。且「紅:9」、「綠:10」、「藍:11

int i;

int R,G,B;

void setup()

{

 

} 

void loop()

{

 

}

 

 

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

    矽夢人生

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