2010年1月24日日曜日

ArduinoでLEDを点滅させる

この投稿は、建築発明工作ゼミ2008を参考に、現在の仕様にあわせて新たに書き起こしたものです。
この投稿内容については、上記ブログ管理人のkousakuさんの許可を得ております。

Arduinoのスケッチは、基本的に以下のような構成になっています。

void setup(){

    //初期設定のプログラム
}

void loop(){

    //ループ処理のプログラム
}

setup()は、スケッチが実行される最初に、一回だけ実行される特別な関数です。『 { 』と『 } 』で囲い、その中に初期設定を記述します。
後述するスケッチでは、pinMode()を使って基盤上のどのピンを出力または入力で使いたいのかを設定しています。

setup()内の処理を終えると、次はloop()関数内の処理に移ります。
loop()は、setup()関数内の初期設定やsetup()上部で宣言された変数、defineで定義された定数などの設定値を使い、入力値の加工や、どのピンにどんな値をどのように出力すればよいかなどの計算をさせるための処理プログラムを記述します。
この中に記述された処理は、電源がつながっていてなんらかのトラブルがない限りループし続け、処理を続けます。

Arduino IDEでスケッチを書き、LEDを点滅させてみます。
まずは、以下のように、LEDをArduinoに直接セットします。
アノードはデジタル13ピン、カソードはGNDに接続します。


次にArduino IDEを起動させ、以下のようなスケッチを書いてみます。


スケッチの説明をします。
1. LEDのアノードを差し込むデジタルピンの番号を、任意でつけた "ledPin" という名前の変数に格納します。
変数とは、スケッチで扱う様々な値をいれておく箱のようなものと考えてください。この箱(変数)を使うと、スケッチ上のいろんな箇所で、変数名を記述するだけで入れておいた値を使う事ができます。もし変数を使わなかったら、上記の "ledPin" と記述されている箇所すべてに値(この場合は13という数値)を書き込まなければなりません。例えばもし「13」という値を変えてみたいと思った時に、"ledPin" と書かれている箇所すべてを書き直す事になります。変数を設定しておけば、1行目の「13」という値を書き換えるだけで済みます。
その他に様々な不便なことが出てくるのですが、今回は割愛します。

int ledPin = 13;

これは、整数型(integer)の値13を変数 ledPin に代入するという意味です。決してイコール(等号)ではないので、間違えないようにしてください。スケッチ内で等号を記述するときは、== と書きます。条件分岐の構文 if 文などでよく使います。プログラムでは、式の右辺から評価(大雑把に言うと計算するということ)し、左辺に代入もしくは比較します。

2. setup()関数(上記参照)

3. pinMode()関数で、"ledPin" の値(この場合は13)のピンを「OUTPUT」(出力)に設定します。

4. loop()関数(上記参照)。関数内の処理のループが始まります。

5. digitalWrite()関数で、"ledPin" の値(この場合は13)のピンを「HIGH」にします。つまり、13ピンに差し込んでおいたLEDのアノードに、5Vの電圧を出力します。そうすると、LEDが光ります。

6. delay()関数で、()内の指定したミリ秒だけ現状を維持します。1000ミリ秒、つまり1秒間LEDが光り続けます。

7. digitalWrite()関数で、"ledPin" の値(この場合は13)のピンを「LOW」にします。つまり、13ピンに差し込んでおいたLEDのアノードに、0Vの電圧を出力します。そうすると、LEDの光りが消えます。

6. delay()関数で、()内の指定したミリ秒だけ現状を維持します。1000ミリ秒、つまり1秒間LEDの光りが消え続けます。

-> 5. に戻って処理を繰り返します。


左側の数値はスケッチ説明用の行番号なので、実際に入力する必要はありません。
ArduinoをPCに接続し、ボードとシリアルポートの設定を確認します(ここの「Arduino ボードの選択」と「シリアルポートの選択」を参照)。
Arduinoボード上の「PWR」ランプが光っていることを確認したら、Arduino IDEの「Verify」ボタンをクリックします。スケッチに不備があれば、
スケッチ記述エリア下部のモニタにエラーメッセージが表示されます。
エラーがなければ、「Upload」ボタンをクリックしてArduinoボードにスケッチを送信します。
成功すれば、モニタに「Done uploading」と表示されます。
Arduinoに差し込んだLEDが、1秒のタームで点滅を始めるはずです。

0 コメント:

コメントを投稿