1.簡介
可變電阻(VR,Variable Resistor),又稱「可調電阻」或「變阻器」,是一種電阻值可以調節的電子元件,主要用途是控制電流或電壓,常應用於燈光調光、音量控制、馬達角度控制等應用。
以B10K的型號為例,有3支腳如下圖所示,如果直接量A和C兩支腳這兩個腳的電阻值,就是10K。

2.材料介紹與準備
- Arduino uno,電路程式控制的主要控制元件。點我購買
- B10K可變電阻,控制馬達方轉向。點我購買
- SG90馬達,馬達元件。點我購買
- 麵包板,置放電子元件的底座。點我購買
- 5mm LED燈,發光元件。點我購買
- 220Ω電阻,限制電流值,避免電子元件過載燒壞。點我購買
- 杜邦線,快速連接電子元件的電路。點我購買
3.範例1:利用監埠視窗讀取可變電阻數值
透過類比輸入接腳來讀取可變電阻的數值,並將這些數值顯示在序列監控視窗中。旋轉可變電阻時,可以觀察到數值在 0 到 1023 之間變化,接線方式如下:
- 黑線(GND):接地(GND)
- 紅線(VCC):供電,一般接5V
- 黃線(脈衝訊號):接收控制訊號,連接到Arduino輸出腳位A0

程式說明:
int sensorVal; //建立變數,讀取的可變電阻模擬值範圍是0~1023
void setup() {
Serial.begin(9600); //設定序列埠傳輸頻率為9600bps
}
void loop() {
sensorVal=analogRead(A0); //讀取類比腳位訊號的數值放進變數裡
Serial.println(sensorVal); //顯示sensorVal數值
delay(1000); //延遲1秒
}
測試結果:

2.範例2:可變電阻控制LED燈
接著控制讓SG90馬達在指定角度內來回旋轉,單顆伺服馬達在運作時,所需電流大約是300mA,所以如果你需要同時控制2顆以上的伺服馬達運作時,就要外接高電流的變壓器來供電囉,不然就會經常出現抖動的情況。
程式說明:
#include <Servo.h> //載入函式庫,這是內建的不用安裝
Servo myservo; //建立馬達名稱myservo
void setup() {
myservo.attach(9); //馬達訊號腳位設定9
}
void loop() {
for(int i = 0; i <= 180; i+=1){
myservo.write(i); //使用write傳入角度,從0度轉到180度
delay(20);
}
delay(1000); //延遲1秒
for(int i = 180; i >= 0; i-=1){
myservo.write(i); //使用write,傳入角度,從180度轉到0度
delay(20);
}
delay(1000); //延遲1秒
}
測試結果:



















