こんにちは、エンジニアのオオバです。

今回はジョイスティックモジュールについて調べてみます。

Arduino ジョイスティックモジュールを使ってスティックの傾けた値を取得する_0

コンシューマゲームコントローラについているようなスティックです。縦横斜めに倒すことができます。

スティックを倒すと、X,Y値それぞれ0〜1023の値で返ってきます。
何も操作しなければXY値それぞれ512が返ってくるのではないかと思います(ぼくの場合値がずれていて困っていますが)

配線的には、ジョイスティックモジュール側に合わせて、GND、+5Vはそれぞれグランドと5Vピンと接続させます。

VRx、VRyピンをそれぞれA5、A4ピンに差し込みます。
ジョイスティックを倒した値は、アナログピンのA4、A5ピンから読み取ることになります。

Arduino ジョイスティックモジュールを使ってスティックの傾けた値を取得する_1

以下がサンプルコードです。
arduino_joystick.ino · GitHub

不具合?

Arduino ジョイスティックモジュールを使ってスティックの傾けた値を取得する_2

先のコードを実行した状態でシリアルモニタに出力すると、ジョイスティックを操作していない状態のXY値がデフォルト値からずれていました。
※本来512だと思われるが、X:502、Y:492とずれている

ソースコードからオフセットを与えることで多少は補正できると思いますが、不良品?なんでしょうかね。

追記 2018.11.26

Arduinoでジョイスティックを使う – jumbleat
こちらの記事で同様の数値のズレについて書かれていました。後日参考にして、調整しようと思います。

以上

参考

オススメ記事
検証環境