S01_JoyStick(搖桿)

【說明】

搖桿是一種類比訊號的元件,它可以用來控制 Arduino,它也是一種基本的電位器,因此它的回傳值可以被事先定義的值來表示,只要按壓或移動搖桿就可以看到值的變化,藉由這值很容易進行 Arduino 的操作。

這種搖桿是具備 X , Y 兩軸,使用 2 個 10 KΩ,回傳的值介於 0 ~ 1023,及一個 Z 軸按鈕,回傳0與1。

【零件表】

No.零件名稱數量
1LCD1602_I2C1
2JoyStick1

【零件接腳】

請參考 「LCD1602_I2C 顯示器」 接腳。

No.零件接腳UNO R3 接腳
1JoyStick : SWD2
2JoyStick : VRyA1
3JoyStick : VRxA0
4JoyStick : VccVcc
5JoyStick : GNDGND

【按線圖】

【程式碼】

/*
 * 示範搖桿的操作,將 X, Y, Z 軸的值顯示出來
 */

// 使用 LCD1602 I2C 顯示器顯示結果
#include <LiquidCrystal_I2C.h>
// 定義 LCD 元件(位置 0x27 及 16x2 的顯示)
LiquidCrystal_I2C lcd(0x27,16,2);  

// 定義搖桿的接腳及資料儲存變數
const int xPin = 0;             // 類比接腳連接於 X 軸。
const int yPin = 1;             // 類比接腳連接於 Y 軸。
const int swPin = 2;            // SW 數位接腳連接於 Z 軸按鈕。
unsigned int xValue;            // 儲存 X 軸的值。
unsigned int yValue;            // 儲存 Y 軸的值。
unsigned int zValue;            // 儲存 Z 軸的值。

// 程式初化設定
void setup() {
  lcd.begin();                  // 開啟 LCD 元件
  lcd.backlight();              // 開啟 LCD 背光
  pinMode(swPin, INPUT);        // 設定按鈕腳位為輸入模式
  digitalWrite(swPin, HIGH);    // 必須將按鈕腳位電位拉昇
}

// 主程式迴圈 
void loop() {
  getJoyStickValue();           // 讀取搖桿的值
  displayResult();              // 顯示讀取資料的值
}

// 讀取搖桿的值
void getJoyStickValue() {
  xValue = analogRead(xPin);    // 讀取 X 軸的值
  yValue = analogRead(yPin);    // 讀取 Y 軸的值
  zValue = digitalRead(swPin);  // 讀取 Z 軸的值
}

// 顯示讀取資料的值
void displayResult() {
  // 顯示 X 值
  lcd.setCursor(0,0);
  lcd.print("X:");
  lcd.print(xValue);
  lcd.print("   ");
  // 顯示 Y 值
  lcd.setCursor(8,0);
  lcd.print("Y:");
  lcd.print(yValue);
  lcd.print("   ");
  // 顯示 Z 值
  lcd.setCursor(0,1);
  lcd.print("Z:");
  lcd.print(zValue);
}
下載程式庫
下載程式碼

 ※  分享結束  ※


發佈留言