今回はGroveモジュールのジョイスティックをArduinoで使ってみます。

こちらがGroveのジョイスティックですが、ゲーム機のコントローラーについていそうなジョイスティックですね。
先日ポテンショメータの説明をしましたが、ジョイスティックもポテンショメータと同じく可変抵抗です。スティックの位置によって抵抗値が変化するので、その変化を電圧値としてマイコンで測定するわけです。なので、今回もADコンバーターを使ったプログラムになります。
サンプルプログラム
今回、Arduinoに書き込むプログラムはこちら。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#include <Wire.h> #include "rgb_lcd.h" rgb_lcd slcd; void setup() { slcd.begin(2, 16); slcd.setRGB(255, 255, 255); // background color } void loop() { int sensorValue1 = analogRead(A0); int sensorValue2 = analogRead(A1); slcd.clear(); slcd.setCursor(0,0); slcd.print("x:"); slcd.setCursor(3,0); slcd.print(sensorValue1, DEC); slcd.setCursor(0,1); slcd.print("y:"); slcd.setCursor(3,1); slcd.print(sensorValue2, DEC); delay(200); } |
GroveジョイスティックからのケーブルをGroveシールドのA0ポートに接続すると、x軸はA0、y軸はA1に接続されます。「なぜA1にもつながるのだろう?」と不思議に思ってGroveベースシールドの構成を調べたところ、A0ポートは実はA0とA1の両方につながっているんですね。

ArduinoのADコンバーターは0~1023の値を取りますが、資料によるとGroveのジョイスティックは200~800の範囲に制限されているらしいです。
| Item | Min | Typical | Max | Unit |
| Working Voltage | 4.75 | 5.0 | 5.25 | V |
| Output Analog Value (X coordinate) | 206 | 516 | 798 | |
| Output Analog Value (Y coordinate) | 203 | 507 | 797 |
実際に動かした映像はこちら。
映像にあるようにx軸、y軸それぞれ最小値は260前後、最大値は750前後でした。
プログラムの簡単な説明
Grove LCDを使用するので「Wireライブラリ」と「rgb_lcdライブラリ」をインポートしています。詳しくは以前の投稿を参照してください。その後、Grove LCDのオブジェクトを作成しています。
|
1 2 3 4 |
#include <Wire.h> #include "rgb_lcd.h" rgb_lcd slcd; |
初期化関数setup()ではGrove LCDを使うための処理をしています。これも以前の投稿を参考にしてください。
|
6 7 8 9 10 |
void setup() { slcd.begin(2, 16); slcd.setRGB(255, 255, 255); // background color } |
ループ関数loop()では、まずA0ポートとA1ポートからアナログ値を読み込んでいます。その後、LCDをクリアした後、x軸の値とy軸の値を表示しています。
最後に200ms待ち時間を設けています。
|
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
void loop() { int sensorValue1 = analogRead(A0); int sensorValue2 = analogRead(A1); slcd.clear(); slcd.setCursor(0,0); slcd.print("x:"); slcd.setCursor(3,0); slcd.print(sensorValue1, DEC); slcd.setCursor(0,1); slcd.print("y:"); slcd.setCursor(3,1); slcd.print(sensorValue2, DEC); delay(200); } |
さいごに
ゲーム機のコントローラのようなジョイスティックをマイコンで扱えるようになると、何か面白いものが作れそうな気がしてワクワクしてきます。ジョイスティックを使った何か面白いアイディアがあればコメントを送ってください。
- 投稿タグ
- マイコン・電子工作