Joystick Module(KY-023) JP

아두위키 : Arduwiki

抵抗の変化によりX軸とY軸の値が変化し、中央のボタンを押すとスイッチの役割を果たすモジュールです。

移動操作が必要なRCカーやドローンなどでよく使われます。

仕様

  • 動作電圧:3.3V ~ 5V
  • X軸、Y軸 アナログ出力
  • Z軸 スイッチ デジタル出力(プルアップ抵抗なし)

使用ハードウェア(例)

  • Arduino board
  • ジャンパーワイヤー
  • ジョイスティックモジュール
  • LCD 1602

接続

Arduino Nano LCD ジョイスティックモジュール
5V VCC 5V
GND GND GND
A1 VRx
A0 VRy
D2 SW
A4 SDA
A5 SCL

サンプルコード

ジョイスティックの座標とスイッチの状態をLCDに表示するサンプルです。

LCDの使い方はリンクを参照してください。

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

const int xAxis = A1;
const int yAxis = A0;
const int zSwitch = 2;

void setup() {
  pinMode(zSwitch, INPUT_PULLUP);
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("X:");
  lcd.setCursor(8, 0);
  lcd.print("Y:");
  lcd.setCursor(0, 1);
  lcd.print("Z : ");
}

void loop() {
  for (int i = 2; i < 6; i++) {
    lcd.setCursor(i, 0);
    lcd.print(" ");
  }
  lcd.setCursor(2, 0);
  lcd.print(analogRead(xAxis));
  for (int i = 10; i < 14; i++) {
    lcd.setCursor(i, 0);
    lcd.print(" ");
  }
  lcd.setCursor(10, 0);
  lcd.print(analogRead(yAxis));
  lcd.setCursor(4, 1);
  lcd.print(digitalRead(zSwitch));
  delay(100);
}

実行結果