まなびサイエンス

Arduino で LED を点滅させる

  • 公開 2017/03/30
  • 更新 2017/03/31
カバーイメージ
  • LED
  • Photo by Huseyin
    • CreativeCommons
    • Attribution
    • NonCommercial

 ようやく、Arduino で LED を点滅させるところまで来ました。LED をチカチカと点滅させることから、よく"L チカ"と言われたりします。前回までの記事で、Arduino でプログラミングを行い、LED を光らせたり、消したりできるようになっているので、もう後は簡単ですね?

プログラミング ~ LED を点滅させる

 まず、電子回路は以前のまま(Fig.1 )、11 番のデジタル入出力ポートを LED に接続た回路をそのまま使います。


Fig.1

 それでは、いよいよプログラミングを始めます。Arduino IDE を起動して、次のようにプログラムを入力します。

void setup() {
  // put your setup code here, to run once:
  pinMode( 11, OUTPUT );
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite( 11, HIGH );
  delay( 1000 ); // A
  digitalWrite( 11, LOW );
  delay( 1000 ); // B
}

プログラムの説明

  • 新しい命令 delay は、数字で指定された時間、プログラムの実行を待ちます。単位はミリ秒(1秒=1000ミリ秒)です。
  • void loop(){ ... }の中に書かれた、LED を点灯→1000ミリ秒待つ(A)→LED を消灯→1000ミリ秒待つ(B)→…という動作を永遠に繰り返します。

 LED がチカチカと点滅するようになりました。「LED がチカチカと点滅する」と一言で表せることでも、これを詳しく観察してみると、次のような動作を繰り返していることがわかります。

  1. LED が点灯する
  2. 暫く待つと、LED が消灯する
  3. 暫く待つと、LED が点灯する
  4. これを繰り返す

 「プログラミング」というと一見とても難しそうに思えますが、このプログラムは、このような動作を一つ一つ、Arduino が理解できる言葉(=プログラミング言語)で書き直しただけなのです。プログラミング言語は覚えなければなりませんが、学校のテストではありませんから、頑張って暗記することはありません。忘れてしまったら、本を見たり、友達に聞いたりしても良いのです。決してクイズや問題を解く訳ではありませんから、それは「難しい」ことは全くないのです。

自由に改造してみよう

 LED がチカチカと点滅するプログラムが完成しました。次は、このプログラムを土台にして、色々、自由に改造してみましょう。

 メニューから[ファイル]-[名前を付けて保存]を選ぶと、プログラムに名前を付けて別々に保存することができます。もし、プログラムを改造し過ぎて動かなくなったりした時でも、正しく動いていた時のプログラムに戻すことができるので、ある程度動くようになったら、プログラムを保存するクセを付けておくと良いでしょう。

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite( 11, HIGH );
  delay( 1000 ); // A
  digitalWrite( 11, LOW );
  delay( 500 ); // B
}
void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite( 11, HIGH );
  delay( 500 ); // A
  digitalWrite( 11, LOW );
  delay( 500 ); // B
}
void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite( 11, HIGH );
  delay( 1000 ); // A
  digitalWrite( 11, LOW );
  delay( 1000 ); // B
  digitalWrite( 11, HIGH );
  delay( 300 ); // C
  digitalWrite( 11, LOW );
  delay( 300 ); // D
}

 それぞれのプログラムで、LED がどのように光るか観察してみましょう。

まとめ

 Arduino で "L チカ" を作るまで、順を追ってかなりゆっくり目に解説してみました。"L チカ" ができたら終わりではなく、これをベースに色々なアイディアを出して、是非ともそのアイディアを試してみてください。もっと早く光らせたらどうなるんだろう? どこまで早く点滅させられるんだろう? 点滅する LED を何かに使えないだろうか? LED の替わりにブザーを付けてみたら? …アイディアは無限大です。

カテゴリー

過去ログ