配合Unit 4的RGB LED的PWM輸出功能,在這個單元中我們將連接一個可變電阻,讓Arduino可以隨時讀取可變電阻的大小,根據它的大小來決定要輸出到RGB LED的亮度值。由於電阻是被動元件,本身不會產生電流,沒有電流就沒有辦法偵側到電壓,因此,可變電阻的兩端要先分別接上5V電源以及接地GND,使其上有電流的流動。接著再把中間的那支接腳接到我們想要偵側的輸入端,在這裡我們使用A1 接腳。電路圖如下所示:
(電路圖有錯,修改中)
連接完成的電路圖如下所示:
Arduino的類比輸入部份是由A0-A5這幾支接腳來負責,由於它們本來就是專責做為輸入之用,因此在程式的setup函數中就不需要再設定其所需要扮演的角色,直接在loop函數中使用就可以了。我們使用以下的程式來讓可變電阻具有調光功能:
https://gist.github.com/skynettw/cb656fad441c25e519ec68ad8cbaecdb
上述的程式中,我們使用了analogRead函數來讀取A1的輸入值。由於在Arduino中A0-A5的輸入值範圍為0~1023,而PWM輸出的範圍是0~255,因此在輸出時,還需要對於使用map函數進行範圍的轉換。在上述的程式例中,變數r中放的是讀取到的數值,而變數v則是轉換過屬於適當範圍的數值,使用此數值就可以透過之前設計的turn函數,對RGB LED進行輸出。此程式的執行範例如下面的影片所示: