以 analogRead() 讀取可變電阻的值,會回傳 0~1023 之間的值。以下的電路示意與範例程式碼,示範情境為:使用可變電阻控制 LED 的燈光亮度,達到調光的目的。
電路示意圖
範例程式
上例的電路圖中,如果將 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 閃爍的速度?
Comments