3つのLEDをあやつる(配列と乱数)LED#05

3つのLEDをあやつる

さてつぎは複数のLEDを操作しましょう。信号機なんかは三色ですね。複数の色があればメッセージを色で伝えたり出来ますね。暑いときは赤、寒いときは青とか。通常は青、警戒のシグナルは赤とか。

必要なもの

パーツ 数量
Arduino UNO 1
ブレッドボードミニ 1
LED 1
高照度LED 2
抵抗220Ω 1
抵抗120Ω(高照度LEDにはこちらを接続) 2
ジャンパーケーブル 7
image

回路チェック

接続が出来たらこのプログラムを書き込んでみてください。順番に光りましたか?光らなければ回路をチェックしてください。LEDが3つだからまだいいですけど、数が増えてくると大変ですね。

配列

先ほどのプログラムはこのように書き換えることができます。一行目でint LED[3]={3,5,6};と宣言しています。LEDという配列には3つデータが入り、その中には2,3,4という値を割り当てます。ということですね。

このときに注意しなくてはならないのは、配列は0番から始まるということです。データを取り出すときにLED[0]はD3、LED[1]はD5、LED[2]はD6を表しているのです。4,5行目で2,3,4を出力モードにセットして、10から14行目で順番に点滅させているのです。

                

配列の書き方

LED[3]={3,5,6};というのが基本です。[]内の数字で配列の数。3つあるので、[3]という表記になります。LED[]={3,5,6};というように省略も可能です。

forの中での配列

もう少し詳しく見てみましょう。4,5行目を見てください。この中のfor{}の中でi=0にして、iは1づつ増えていき2まで増加していきます。3になると、条件式iは2を越えてしまうので、for文を抜けて、次の処理すなわちvoid loop{}に向かいます。

最初変数iは0ですからLED[]配列の0番目の値2です。なのでpinMode(2,OUTPUT);となります。次にiは1ですね。LED[]配列の1番目の値3です。なのでpinMode(3,OUTPUT);です。変数iが2になると、LED[]配列の2番目の値4です。なのでpinMode(4,OUTPUT);を実行しているのと同じことになります。

乱数を使ってランダムに光らせる

順番に光らせるのもいいですが、ランダムに光らせるのもいいですね。

random(min,max)

乱数を発生させるにはrandom(最小値,上限)という関数を使います。最小値は省略可能です。注意点は上限-1までの乱数が生成されるところでしょう。random(3)だと0から2の間の乱数が生成されます。

シェアするにはこちらからShare on FacebookShare on Google+Tweet about this on Twitter

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です