Arduino で LED を点灯させることができました! しかし、このままでは Arduino は単に電源を供給しているだけで、Arduino を使う必要が全くありません。そこで、次のステップとして、プログラミングを行い、Arduino から LED の点灯させたり、消灯させてみます。
Arduino でプログラミングを行うため、Arduino IDE のダウンロードページから、使っているパソコンの OS に合った Arduino IDE をダウンロード(Fig.1 )、インストールします。
前回の LED を点灯させる回路を参考に、LED のアノード(足の長い方)につながっているジャンパ ワイヤを、11 番のデジタル出力ピンに差し替えます(Fig.2 )。この状態では、まだ LED は消えたままだと思います*1。
それでは、いよいよプログラミングを始めます。Arduino IDE では、「C 言語(しー げんご)」と呼ばれるプログラミング言語でプログラミングを行います。インストールした Arduino IDE を起動すると、次のような画面が表示されます(Fig.3 )。Arduino のプログラムのことを、特に "スケッチ" と呼びます。
この画面の上半分にスケッチを入力していきますが、最初から入力されている行がありますので、ハイライトされた行だけ入力すれば OK です。
void setup() { // put your setup code here, to run once: pinMode( 11, OUTPUT ); digitalWrite( 11, HIGH ); } void loop() { // put your main code here, to run repeatedly: }
スケッチを正しく入力できたら、メニューから[スケッチ]→[マイコンボードに書き込む]を選択します。スケッチに問題がなければ、Arduino にスケッチが転送され、LED が点灯します。
void setup(){ ... }
のカッコ内に書いたコードが一度だけ実行されます。void loop(){ ... }
のカッコ内に書いたコードが何度も実行されます。pinMode( 11, OUTPUT )
では、11 番のデジタル入出力ポートを、出力(OUTPUT)として使うよう指定します。digitalWrite( 11, HIGH )
では、出力として設定した 11 番のデジタル出力ポートに、5V(HIGH) を出力するように指定します。すると、5V→LED→GND と回路ができるので、LED が点灯します。LED が点灯しましたが、前回、LED を点灯させた時と何が変わったのか、一見すると全く違いが判りません。しかし、この LED は、たった今、あなたが作ったプログラム(スケッチ)に従って、Arduino が光らせています。次は、それを確かめてみます。
次に、この LED を消灯させてみます。ジャンパ ワイヤを引っこ抜けば、LED は消灯しますが、ブレッド ボードや電子回路には一切手を触れず、同じ電子回路のままで LED を消灯させるにはどうすればよいでしょうか? 答えは「LED を消灯する」というスケッチ(プログラム)を書けばよいのです。
void setup() { // put your setup code here, to run once: pinMode( 11, OUTPUT ); digitalWrite( 11, LOW ); } void loop() { // put your main code here, to run repeatedly: }
led-on
から一か所だけ変わっています。スケッチを入力できたら、先と同じように、メニューから[スケッチ]→[マイコンボードに書き込む]を選択します。スケッチに問題がなければ、Arduino にプログラムが転送され、LED が消灯します。
LED が消灯しました。これも一見すると何が起きているのかよく判りません。電子回路は触らず、プログラムを一カ所、HIGH
→ LOW
と書き換えただけです。つまり、あなたが作ったプログラム(スケッチ)に従って、Arduino が LED を光らないようにしたことが判ります。
digitalWrite( 11, LOW )
では、出力として設定した 11 番のデジタル出力ポートに、0V(LOW) を出力するように指定します。すると、0V→LED→GND=0V と回路ができるので、LED は点灯しません。電子回路を直接触らずとも、プログラムを書いて、LED を光らせたり、消したりできることが判りました。勘の良い人なら、プログラムで LED を光らせたり、消したりできるということは、LED をチカチカと点滅させるには、どうすればよいのか察しの付く人が居るかもしれません。次回、いよいよ(ようやく?) この "L チカ" をやってみたいと思います。