(一)類比輸出控制與PWM控制
(二)Ardiuno語法基礎:if
(三)基本函式:analogWrite( )
(四)全彩RGB LED的使用
脈波寬度調變(Pulse Width Modulation,PWM)
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 = 第3、5支接腳。 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
EX 4-3:全彩RGB LED:數位輸出控制,8種變化
|
//全彩RGB LED 數位輸出控制,8種變化 const int LED[3]={9,10,11}; // 定義 LED = 第9、10、11支接腳。且「紅: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種變化
http://electronics520.pixnet.net/blog/post/388156166%20
|
全彩RGB LED 類比輸出控制,27種變化 const int LED[3]={9,10,11}; // 定義 LED = 第9、10、11支接腳。且「紅:9」、「綠:10」、「藍:11」 int i; int R,G,B; void setup() {
} void loop() {
} |
留言列表