2015年7月7日 星期二

[arduino] 利用PWM控制LED亮度

在 Arduino 中,每個週期是 2ms (PWM 頻率為 500Hz)。

analogWrite() 的參數值範圍介於 0 ~255

analogWrite(255) 代表產生 100% duty cyle 的輸出(一直通電),

analogWrite(127) 則是產生 50% duty cycle 的輸出(一半的時間通電,一半的時間斷電)。

Duty Cycle 為每一個週期通電(on) 的時間比例。

假如開車時,在10秒內持續踩油門,速度會達到100 KM

若我單秒踩,雙秒鬆,則10秒後,速度只會達到50KM

若我踩一秒,鬆2秒,則10秒後,速度只會達25 KM


以下程式碼是讓LED燈亮起1/4亮度, 1/2亮度,全亮,每個亮度間隔5秒 不斷循環。


 int brightness = 0; // how bright the LED is  
 void setup() {  
 // declare pin 9 to be an output:  
 pinMode(9, OUTPUT);  
  }  
 void loop() {  
 brightness=64;  
 analogWrite(9, brightness);  
 delay( 5000);  
 brightness=127;  
 analogWrite(9, brightness);  
 delay(5000);  
 brightness=255;  
 analogWrite(9, brightness);  
 delay(5000);  
 }  

實際影片(拍的不好,多包函)




analogWrite(64)



























analogWrite(127)

























analogWrite(255)

























參考來源:

http://coopermaa2nd.blogspot.tw/2010/12/arduino-lab3-led.html

沒有留言:

張貼留言