Lab5

Potentiometer 可變電阻

[材料]

Arduino主板 x 1

麵包板 x 1

Led x 1

可變電阻 x 1

步驟一:測試可變電阻的電阻大小,調整電阻,看看LED燈的亮度變化如何?

/* Lab5 Potentiometer 程式碼 步驟一 */


//不須撰寫程式,直接安裝好就可以控制


步驟二:調整可變電阻,改變"輸入"數值;再"輸出"相對應的數值讓LED發出不同亮度。

/* Lab5 Potentiometer 程式碼 步驟二 */


int led1 = 11;

int potPin = A0; //類比輸入使用A0~A5的pin

int potValue, ledValue; //potValue:可變電阻的數值。ledValue:led燈的數值


void setup(){

Serial.begin(9600);

pinMode(led1, OUTPUT);
pinMode(potPin, INPUT);

}


void loop () {

potValue = analogRead(potPin); //讀取可變電阻的數值,數值介於0~1023

Serial.println(potValue); //顯示可變電阻的數值


ledValue = map(potValue, 0, 1023, 0, 255); //把0~1023的數值,轉換為0~255

analogWrite(led1, ledValue);

}

[解釋]

1. pin A0~A5:"類比輸入"。其他的pin 0~13:"數位輸入"和"數位輸出",有~:"類比輸出"。

2. analogRead()讀入0-1023的數值; analogWrite()只能寫入0-255的數值。

3. map(value, fromLow, fromHigh, toLow, toHigh)可以把某個數值範圍,對應成另外的數值範圍,參考 https://www.arduino.cc/en/Reference/Map

4. 在Arduino程式面板按下"序列埠監控視窗"或"序列繪圖家",會顯示從可變電阻得到數值。


[基本問題]

1. 步驟一和步驟二都可以控制LED的亮度,但是有什麼差異?


2. 除了可以控制LED的亮度,請想想還有什麼東西,也適合用可變電阻來改變?



[挑戰問題]

1. 原來的程式是控制"光的亮度",請修改程式為控制"光的閃爍頻率"。