Basic Tutorial for Arduino, 感測器 Sensor, 進階篇

【Arduino進階教學】雙軸搖桿模組(Joystick):X/Y軸類比讀取與 Z 軸按鈕實作

一、 雙軸搖桿 (Joystick) 模組運作原理

雙軸搖桿(Joystick) 是 Arduino 專題中常用於控制遙控車方向、雲台旋轉與遊戲角色的核心輸入模組。

模組核心運作機制

  1. X、Y 軸雙向類比控制: 搖桿內部整合了兩個互相垂直的 10KΩ 可變電阻(Potentiometer)。當搖桿在上下(Y軸)或左右(X軸)移動時,內部電阻值會隨之改變,輸出 0V ~ 5V 的類比電壓訊號。

  2. Arduino 類比讀取: Arduino 透過 ADC(模數轉換器)讀取引腳電壓,傳回 0 ~ 1023 的數值:

    • 搖桿靜止居中時,X 與 Y 軸數值約為 512

    • 推至最左 / 最下時,數值接近 0

    • 推至最右 / 最上時,數值接近 1023

  3. Z 軸按鈕功能(SW): 垂直向下按壓搖桿頭部會觸發內建的輕觸開關(Switch),輸出高/低電位數位訊號。

二、 實驗所需材料與電路接線圖 (Hardware Setup)

依照雙軸搖桿上的 5 Pin 腳位標記,連接至 Arduino Uno 對應的電源與類比輸入引腳。

🛒 準備材料

  • Arduino Uno 開發板 x 1

  • USB 傳輸線 x 1

  • 雙軸搖桿模組 (Joystick) x 1

  • 杜邦線 5 根

🛍️ 準備好你的硬體工具了嗎? 推薦選購:米羅科技 – Arduino 程式學習爆款套件組(包含豐富驅動專案模組)

👍爆款推薦:程式學習套件組 

購買網址:shop.mirotek.com.tw

⚡ 腳位對接說明 (Pin Mapping)

雙軸搖桿腳位標示腳位功能說明Arduino Uno 引腳
GND電源接地GND
VCC (+5V)電源正極 (5V)5V
VRx / VRXX 軸類比電壓輸出A0
VRy / VRYY 軸類比電壓輸出A1
SWZ 軸按鈕開關輸出A2

三、 完整程式碼實作

燒錄程式碼後,開啟 Serial Monitor(序列埠監視器),即可即時觀察搖桿移動時 X軸、Y軸 與 Z軸(按鍵)的參數變化。

int xPin = 0;  //X軸 接類比A0
int yPin = 1;  //Y軸 接類比A1
int zPin = 2;  //Z軸 接類比A2
  
int xval=0;    //X軸變數
int yval=0;    //Y軸變數
int zval=0;    //Z軸變數


void setup() {
  Serial.begin(9600);  // 視窗baud rate
}

void loop() {

  xval = analogRead(xPin);   //讀取X軸數值到xval變數
  yval = analogRead(yPin);   //讀取Y軸數值到yval變數
  zval = analogRead(zPin);   //讀取Z軸數值到zval變數

  char buf[100];
  sprintf(buf, "VRx=%d, VRy=%d, SW=%d", xval, yval, zval);
  Serial.println(buf);

  delay(100);                    
 
}

結果:

下載程序完成後,打開序列埠監控視窗,左右上下或按下搖桿讀取參數的變化。

四、 常見問題與除錯 (FAQ)

Q1:搖桿放開靜止時,輸出的數值不是剛好 512?

  • 解答: 這是正常的硬體公差現象。市售搖桿的機械結構與電阻零件皆有些微誤差,靜止中位數通常落於 490 ~ 530 之間。實務應用時可透過程式設定 deadzone(死區容差值)進行修正。

Q2:按壓搖桿 SW 時,數值沒有明顯變化或跳動不定?

  • 解答: 搖桿模組的 SW 腳位通常為開路狀態。若希望獲得穩定的數位 HIGH / LOW 狀態,可改將 SW 接至 Arduino 的數位引腳(如 D2),並在 setup() 中使用 pinMode(2, INPUT_PULLUP); 開啟內部上拉電阻。

Q3:序列埠監視器顯示出一堆亂碼?

  • 解答: 請確認序列埠監視器右下角的波特率(Baud Rate)是否設定為 9600 baud

🔗 延伸閱讀與推薦課程

📟 進階顯示模組控制:【Arduino進階教學】LCD 1602 I2C 顯示模組:4線快速接線、位址檢測與程式碼範例

👈 上一篇: 【Arduino進階教學】4×4 矩陣按鍵模組:雙重迴路掃描原理、配線圖與程式碼實作

👉 下一篇: 【Arduino進階教學】RGB LED 模組 PWM 調色實作:全彩燈光控制原理與接線圖

📘 總索引: Arduino 新手學習必讀經典 – 快速索引頁面