以 analogRead() 讀取可變電阻的值,會回傳 0~1023 之間的值。以下的電路示意與範例程式碼,示範情境為:使用可變電阻控制 LED 的燈光亮度,達到調光的目的。

電路示意圖

potentiometer Circuit potentiometer Circuit potentiometer Circuit

範例程式

上例的電路圖中,如果將 LED 接在 13 以外的腳位,請加一顆 220 ohm 的電阻,若直接接 13 腳位則可不必,請記得依照你 LED 所接的腳位修改程式碼的 ledPin。

int potPin = A3;
int ledPin = 13;

void setup() {
Serial.begin(9600);
}

void loop() {
int sensorValue = analogRead(potPin);
Serial.println(sensorValue, DEC);

sensorValue = sensorValue/4; // convert from 0-1024 to 0-255
// 或者用 map 函數 map(value, fromLow, fromHigh, toLow, toHigh)
// sensorValue = map(sensorValue, 0, 255, 0, 1023);

analogWrite(ledPin, sensorValue);
delay(150);
}

思考練習

還記得 Blink LED 閃爍的範例程式嗎?如何轉動可變電阻改變電阻數值時,改變 LED 閃爍的速度?