http://lab.cavedu.com/ardublock_fade <- 程式碼請由此下載
玩過定時閃爍之後,來看看怎樣在 ArduBlock 中使用 set analog pin 指令(相當於 Arduino 的 AnalogWrite() 語法) 讓 LED 有漸明漸暗的呼吸燈效果。同樣的指令之後也可以用來控制馬達的轉速。
看一下程式:
在 setup 中宣告一個名為 brightness 的數字變數,初始值為0,這是 LED的亮度,範圍為0~255;還有另一個名為 fadeAmount 的數字變數,初始值為5,這是 LED 亮度每次累加(或累減)的量。
接著在 loop 中,就把 brightness 指定為 Arduino 數位腳位9 的亮度,接著 brightness 累加5,每次延遲時間為 0.03秒。直到累加到 255 之後,將 fadeAmount 加上負號,這時 LED的亮度就會從 255開始每次累減5,直到 brightness 等於 0時,fadeAmount 又會變回5。這樣就是呼吸燈的效果。
請注意:在此使用#9 是因為 Arduino Uno #9 pin 支援 PWM 控制,如果您將 LED 插在一個不支援 PWM 的腳位的話,本指令會沒有效果。
附上 Arduino Fade 的程式碼,您可以比對一下
int led = 9; // the pin that the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
analogWrite(led, brightness);
brightness = brightness + fadeAmount;
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
delay(30);
}