Joystick Module(KY-023) JP

아두위키 : Arduwiki
ArduWiki (토론 | 기여)님의 2025년 3월 27일 (목) 18:11 판 (새 문서: {{#seo:|title=アドウィキ:Arduino ジョイスティックモジュール ガイド|title_mode=append|keywords=Arduino, 情報科学, メイカー教育, パフォーマンス課題, ジョイスティックモジュール, Arduino作品, キャップストーン作品, Arduinoサンプルコード|description=Arduinoでジョイスティックモジュールを制御する方法(基本情報、回路、サンプルコード)を紹介します。情報科学やメイ...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

抵抗の変化により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);
}

実行結果