在前一個單元中我們使用的是數位輸出入的接腳,此種接腳顧名思義,輸出值只有HIGH和LOW兩種,因此在上一個例子中,其中總共只能調出8種顏色而已(同學們可以思考一下為什麼是8種顏色喔)。在這個單元中,我們把原本接到數位接腳2、3、4的那三條線改接到3、5、以及6,如果你有注意到的話會發現,這3個接腳的數字旁邊,有一個波浪的符號「~」,這就是支援PWM的輸出接腳。

因為只有連接到Arduino的線位置有變化,在這裡我們就不再繪出電路圖了,直接來看看如何使用這些PWM接腳。由於使用的是類比輸出入的部份 ,因此在程式中會有幾個變化。首先,要設定數值的函數,由digitalWrite改為analogWrite,其次,輸出的值由原本的HIGH以及LOW兩種,改為可以從0到255的數字,簡單地看PWM,不同數值表示輸出不同的電壓,因為得到的電壓值不同,LED的亮度就會跟著有不同。先來看看其中一個顯示不同亮度的紅色之程式例:

這個程式使用了之前沒有見過的迴圈,迴圈的目的在於讓某些敘述可以重覆執行,同時在重覆的過程中設定一個隨著迴圈執行次數而變化的索引變數(在此例中為變數i),透過指定 i 的起始值和結束值以及變化量來決定重覆的次數,並可以利用每次都會改變的變數 i 的數值,應用於輸出量的大小。以下是上述程式的執行實例影片:

延續上面的例子,可以修改上一單元的輸出函數turn,使其可以支援類比的輸出工作。以下的程式同時變化3個顏色,由於是同步變化相同的數值,所以基本上就是白色光的由明轉暗再轉明:

以下的程式則是利用亂數函數radnom製造出隨意改變色的LED效果:

以下是上述程式的執行實例影片:

 

(640)