ジョイスティックでLEDの点滅を操作する

この記事は前回書いた

アナログジョイスティックDIP化キット AE-JY-DIPについて - 僕が本当に働きたくないから書いていくブログ

の続きのようなつもりです。前記事を見てもらえると閲覧数が増えてうれしいです(見なくても理解できる内容だと思います)。

ジョイスティックっていいですよね

f:id:ten0313:20170712171813j:plainわくわくする存在です。

前回使い方がわかったジョイスティックですが「ジョイスティック」ってとてもかっこよくないですか?

ゲームのコントローラーや宇宙船の操縦桿UFOキャッチャーのレバーとか...どきどきするし面白い存在です。

 

使い方がわかったのですから...

何かを「操作」してみようと思います。今回はあくまでもジョイスティックで何かを動かすというのが目的で作品を作るのが目的ではないので、

凝ったものはやめておき簡単に光る白色LEDの操作をしてみます。

 

使うもの

  • アナログジョイスティック
  • 白色LED
  • LEDのための保護抵抗
  • アルディーノ(今回は中華製のUNO互換機を使いました)

作ってみました

配線は以下のとおりです、可変抵抗をジョイスティックとして考えてください

f:id:ten0313:20170713225730j:plain

ジョイスティックの端子の順番を忘れないようにします。

f:id:ten0313:20170713230630j:plain

ジョイスティックは2軸の動きを検出できるパーツですが今回は一方向のみの活用です。

よりちゃんとジョイスティックとしての使い方を目指すならLEDの配列をタテとヨコに十字型に配列してもいいかもしれませんね。

 

アルディーノでのスケッチです。

~~~~~~~

void setup() {
Serial.begin(9600);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
int val;

// put your setup code here, to run once:

}

void loop() {
int val;
val = analogRead(A0);
Serial.println(val);

if(140 > val && val < 280){
digitalWrite(3,HIGH);
digitalWrite(2,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
} else if(280 > val && val < 420){
digitalWrite(4,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
}else if(420 > val && val < 560)
{digitalWrite(5,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
} else if(560 > val && val < 600)
{digitalWrite(6,HIGH);
digitalWrite(5,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
}else if(600 > val && val < 740)
{digitalWrite(7,HIGH);
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(8,LOW);
}else if(740 > val && val < 970)
{digitalWrite(8,HIGH);
digitalWrite(7,LOW);
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
}
val=0;
// put your main code here, to run repeatedly:

}

~~~~~~

デジタルピンの2が余計に加わってしまってるのを消し忘れています。気にしないでください。

 

動かしている様子です。ジョイスティックぐりぐり楽しいです。

youtu.be

今回はLEDの点滅の操作という簡単なことでしたが、いずれ近いうちになにか動くものの操作にこのジョイスティック、採用して工作してみたいです。

とても面白いパーツだと思いました。 ありがとうございました;)

 

[ この記事は電子工作初心者の憶測や考えによりつくられています。

よって書いてある内容に誤りや言い間違いがあるかもしれません。もし修正したほうがいい場所や「こういった言い方のほうが”ソレっぽい”よ」などがありましたら後に記載してありますリンク先のツイッターアカウントに教えてくださると嬉しいです:) ]

 

アナログジョイスティックDIP化キット AE-JY-DIPについて

「記事」というにはあまりにも拙い、メモ書きのような投稿です。

先日秋月で電子工作っぽい部品を買おうと思い、アナログジョイスティックDIP化キットを買いました。

アナログジョイスティックDIP化キット: センサ一般 秋月電子通商 電子部品 ネット通販

f:id:ten0313:20170711060907p:plain

指とかでぐりぐり動かして操作するやつです、それっぽい。

 

これの上に乗っかっているぐりぐりをもっと扱いやすくするために基板に乗っけてる...って認識で買いました。

 

本題に入ります

さあ、いざこれを扱おうとした時に困ったのがデータシートの読み解きです(そんな物がなくてもジョイスティックくらいパパッとよ」って人は...すごいですわあ...)。

f:id:ten0313:20170711061903j:plain

 

ででどん!って感じですよね...中国語が本当に苦手で(一応英語でも書いてるんですけどなんかこの説明書だけはよく理解できそうになかった)白目をむいてしまいました。

とりあえずぐぐるも売っている部品屋のホームページばかりがヒットしワケワカメ状態でした。

なんで2軸方向の抵抗なのに端子が6本なん!?って叫んでました。

 

答えあわせというか、これが正解でしたよ。っていうのをいいますとf:id:ten0313:20170711062653j:plain

こんなかんじでした。

わかりづらいので解説()すると、「1の端子は電源の端子で2が抵抗値出力の端子、3番はグランドで上側が横方向で下側が縦方向に対する値に対応している」って感じ...です。

ピンの並びが[123123]ではなく[123321]といった整列された並びでないことをわすれないようにしたいです。

あ、残りの6本はまあ多分そう近く使う機会はないだろうなんて思って調べてません。めんどくさい

 

以上、「アナログジョイスティックDIP化キット AE-JY-DIPについて」でした。

呼んでくださりありがとうございました。

 

[ この記事は電子工作初心者の憶測や考えによりつくられています。

よって書いてある内容に誤りや言い間違いがあるかもしれません。もし修正したほうがいい場所や「こういった言い方のほうが”ソレっぽい”よ」などがありましたら後に記載してありますリンク先のツイッターアカウントに教えてくださると嬉しいです:) ]

twitter.com