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. 原來的程式是控制"光的亮度",請修改程式為控制"光的閃爍頻率"。