2012年2月21日火曜日

複数のLED制御してみました。その1

どうも晴彦です。

今日は複数のLEDを制御をしてみたと思います!
まずはじめに回路から


ん~色々と配線をしていくとどうしても見づらくなってしまいますね(^^;)
そんな時は実装図や回路図が簡単に描けちゃういいソフトがあります!
その名も「Fritzing」
このソフトを使って描くとこんな感じで出来ます。
 上の写真と違って見やすいし回路の保存などにも大変便利です。
なによりフリーのソフトなので助かります(笑)
気になる方は検索してみてくださいね。

ではでは今回の実験「複数のLED制御」
まずは前回のblinkを参考にスケッチを書いてみました!

 ~スケッチここから~
void setup(){
  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
}

void loop(){
 
   digitalWrite(2,HIGH);
   delay(100);
   digitalWrite(2,LOW);
   delay(100);
   digitalWrite(3,HIGH);
   delay(100);
   digitalWrite(3,LOW);
   delay(100);
   digitalWrite(4,HIGH);
   delay(100);
   digitalWrite(4,LOW);
   delay(100);
   digitalWrite(5,HIGH);
   delay(100);
   digitalWrite(5,LOW);
   delay(100);
   digitalWrite(6,HIGH);
   delay(100);
   digitalWrite(6,LOW);
   delay(100);
   digitalWrite(7,HIGH);
   delay(100);
   digitalWrite(7,LOW);
   delay(100);
   digitalWrite(8,HIGH);
   delay(100);
   digitalWrite(8,LOW);
   delay(100);
   digitalWrite(9,HIGH);
   delay(100);
   digitalWrite(9,LOW);
   delay(100); 
}
~スケッチここまで~

今回はLED8個でスケッチを書きましたがLED1個づつ書いていくと打ち間違い
しやすくなったりして大変です・・・
(実際に間違えて同じLEDが連続でついたり光らなかったりしました_| ̄|○)

ほかにもdelay時間の手直しなど同じ修正をいっぱいしないといけなかったり大変です。
コピペや置き換えを使えば多少は修正作業は減りますがスケッチは長くなると
うまく動かなかったときのチェックが大変です。
そんな時(同じ様な処理を何度も使う)はIDEで用意されている機能を使うと
簡単に短い文で同じことが出来ちゃいます!

それが「for」 です!
実際にforを使って書き直してみたのが↓になります。

~スケッチここから~

void setup(){
  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
}

void loop(){
   for (int i = 2; i>= 9; i++){
    digitalWrite(i,HIGH);
    delay(100);
    digitalWrite(i,LOW);
    delay(100);  
  }
 }
~スケッチここまで~

たったこれだけで同じ事になります!!

delay時間の修正もたった2ヶ所直せば動いちゃうので便利ですね(^^)

実際に動かした動画をアップしてみました。

説明していきたい所ですが時間が遅くなってしまった為
次回説明したいと思います。


1 件のコメント:

  1. for (int i = 2; i>= 9; i++)
    ではなく、
    for (int i = 2; i<= 9; i++)
    ですよ。

    返信削除