まぁ、最初の一歩としては、おきまりですね。
Arduino (ここでは UNO) を使って、ボード上の LED をピカピカさせるプログラムやってみます。
まずは、Arduinoの開発環境 で解説した、Arduino IDE を起動します。
メニューのファイル->新規ファイルをクリックして、スケッチ(ソースコード)を入力していきます。コードはいくつかのブロックに分かれていて、
を記述します。こんな小さなスケッチでも、多くのことを処理する大きなスケッチでもかわりはありません。
//定数等の宣言 void setup() //ボードの設定 { //ボードの設定を行う } //プログラム本体 void loop() { //プログラムの処理を書く }
この形が基本になります。
今回の処理は、Arudino UNO のボード上にある LED を 500 ミリ秒の間隔で点滅させる事が目的です。
LED は Arduino UNO の 13 番のピンに接続されていますから、これを前提に処理を考えてみます。
文章で記述すると、
となります。
さて、スケッチをコーディングします。
定数等の宣言は最初に行い、
const int LED = 13;
の記述で、変更されない(const)整数(int)型の変数で、名前は LED 、代入する値は 13 ですっという意味になりますね。
ボードの設定は、
void setup() { pinMode(LED, OUTPUT); //指定したピンを出力モードにする }
が相当します。コメント(5行目の//に続く文字列)にもありますが、指定したピン番号(LED = 13)を出力(OUTPUT) として使いますっという意味です。
プログラムの本体は
//setup()が実行された直後に繰り返し実行される関数 void loop() { digitalWrite(LED,HIGH); // LEDを点ける delay(500); // 1 秒待つ digitalWrite(LED,LOW); // LED を消す delay(500); // 1 秒待つ }
こんな感じです。
コメントにもあるとおり、void loop() の次の大カッコ { から } が現れる間をずっと実行し続けます。
digitalWrite は LED (13)で指定されたピンを HIGH (オン)の状態にします。delay(500) は 500ミリ秒の間待つ命令です。次にくるのは、digitalWrite(LED,LOW); で、もうおわかりの通り、13 番のピンを LOW (オフ) の状態にせよ!という命令です、その後また 500 ms の Wait し、void loop() の中身をずっと実行し続けます。ですから 13 番のピンに LED (発光ダイオード) がちゃんと接続されていれば、0.5 秒ごとに点滅をするというスケッチです。
全部合わせると、
const int LED = 13; void setup() { pinMode(LED, OUTPUT); //指定したピンを出力モードにする } //setup()が実行された直後に繰り返し実行される関数 void loop() { digitalWrite(LED,HIGH); // LEDを点ける delay(500); // 1 秒待つ digitalWrite(LED,LOW); // LED を消す delay(500); // 1 秒待つ }
こうなります。
かんたんですね。
基本はこのような形です。
さて、スケッチを入力し終えたなら、早速コンパイルしてみます。
コンパイルとは、スケッチを Arduino がわかる形に書き換えることですね。
Arduino IDE の左上にある
このボタンがコンパイルを行うボタンです。
入力したスケッチに何も問題が無ければ、
コンパイル終了と下部の黒い窓の上に表示され、コンパイル後のスケッチのサイズ:1,076バイト(最大容量32,256バイト)などと表示がされコンパイルが完了します。
さて次は、Arduino に、このスケッチを転送しますがその前に IDE の設定を行います。
Windows7 の場合、コンピュータでデバイスマネージャーを表示させ、Arduino をインストールした、COM ポートを確認します。
この場合は COM6 ですね。
IDE のメニューで、ツール->シリアルポート をクリックし、COM6 を割り当てます。
次いで、ツール->マイコンボードで、Arudino UNO を選択します。
さて、いよいよスケッチを転送します。
ボタンを押すと転送が開始され、Arduino 上の緑の LED が点滅します。下部の黒い窓には、マイコンボードへの書き込みが完了しました。と表示され、即、転送したスケッチが実行されます。
さて、動いている様子は、こんな感じです。ちゃんと点滅していますね。
ちょっと退屈ですが、少しずつ進めていきましょう。ちなみに Arduino UNO を購入したときに電源を入れるとやはり LED が点滅していますが、これは 1000ms (1秒)ごとに点滅するプログラムが入っているようです。
電子機器が大好きです。
プログラムを書くのをお仕事としていたこともあるので、両方できる PIC や Arduino を使って、いろいろな(役にあんまり立たない)ものを作っています。
実は UNIX 関連のお仕事も長かったので、Raspberry Pi もお手の物なのですけれど、これから触る機会が多くなるのかなぁ。
ボチボチ行きますが、お付き合いください。
若いころの写真なので、現時点では、まだ髪の毛は黒くてありますが、お髭は真っ白になりました。
愛車の国鉄特急カラーのカスタムしたリトルカブで、時々、秋月電子通商の八潮店に出没します。