ジョイスティックで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の点滅の操作という簡単なことでしたが、いずれ近いうちになにか動くものの操作にこのジョイスティック、採用して工作してみたいです。

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

 

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

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