模擬搖桿是你在玩視頻遊戲時肯定使用過的一種電子元件:

你可以移動搖桿,也可以從上到下點擊:

任何動作都會向連接的電路發送相應的電子信號。

搖桿的 5 個引腳分別是:

  • GND,輸入低電平信號
  • +5V,輸入高電平信號,也可以是 3.3V,如果使用基於 3.3V 的設備
  • VRx,表示搖桿在 x 軸上的位置的模擬信號
  • VRy,表示搖桿在 y 軸上的位置的模擬信號
  • SW,縮寫為 開關,按下時的數字值為 LOW,否則為 HIGH

VRxVRy 連接到模擬輸入引腳,可以獲取它們的值。

模擬輸入值的範圍是從 01023,因為它們使用 10 位元的解析度。

觀察搖桿的左側引腳,X 軸的值從 0(最左)到 1023(最右)變化,並且在中間值 498Y 軸的值從 0(頂部)到 1023(底部)變化,並且在中間值 498

假設 VRx 連接到 A0VRy 連接到 A1:

int x = analogRead(A0);
int y = analogRead(A1);

一個簡單的打印數值的程式如下:

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

void loop() {
 int x = analogRead(A0);
 int y = analogRead(A1);
 Serial.print("X = ");
 Serial.print(x);
 Serial.print("\tY = ");
 Serial.println(y);
 delay(100);
}

你也可以將它們視為電壓值。假設正電壓為 5V,你可以將得到的值乘以 5.0,然後除以 1023,得到 05 的範圍:

x = analogRead(A0);
y = analogRead(A1);

float x_val = (x * 5.0) / 1023;

你可以進行類似的計算,以獲取相對於 3.3V 的值。