UNOを使ってみる(本体LEDの点灯)(Arduino)

Arduino UNOには、デジタル13番PINにLEDが付けられています。
これを点灯させてみることにします。

今回は、スケッチ(プログラム)してみます。
・・・短いものですが。。。

準備です。
1.PCとArduino UNOをUSBケーブルで接続します。
2.デバイスマネージャーからポート番号を確認します。
 Windowsメニューを右クリック→「デバイスマネージャー(M)」→「ポート(COMとLPT)」
 ※私の設定は、Arduino UNO (COM5) です。
3.Arduino IDE を起動します。
4.対象ボードの設定を行います。
 メニュー「ツール」→「ボード」→「Arduino AVR Boards」→「Arduino UNO」
 を選択します。
5.シリアルポートの設定を行います。
 メニュー「ツール」→「シリアルポート」→〔COM5(Arduino UNO) 〕
 2.で確認したポート番号を選択します。
 ※私の場合は、COM5(Arduino UNO) になります。
6.4.5.の設定内容を確認しておきます。
 メニュー「ツール」
 ・ボードとシリアルポートの選択内容を確認します。

※ここまでの準備(設定)は
 UNOを使ってみる(本体LEDの点滅) のページ
 画像付きで解説しています。

7.前回最後に使用したスケッチファイルが開かれてきますので、
 新規スケッチファイルを用意します。
 メニュー「ファイル」→「新規ファイル (Ctrl+N)」

新規ファイル1
新規ファイル1
新規ファイル2
新規ファイル2

ArduinoIDE は準備出来ました。
さて、どこに何を書けばよいのだろうか?

プログラムの記述ブロックは大きく2つに分かれています。
ひとつは、電源が入りArduinonoの初期化が完了(動作可能状態)したら、
まず最初に行いたいことを書くブロック
 void setup() {
 // put your setup code here, to run once:
 
 }
と、setup(){ }に書かれた内容を実行したあと、
電源が切られるまで、永遠に繰り返すブロックです。
 void loop() {
 // put your main code here, to run repeatedly:

 }
loop(){ }に書かれた内容は電源を切るまで何度でも繰り替え
されることになります。

スケッチ実行の流れ
スケッチ実行の流れ

Arduinoのプログラム記述は、半角文字が基本です。
全角の文字の混入には注意して下さい。

1.デジタルPINは入出力に使用できます。
 このため、どちらで利用したいかを設定します。
 今回は、LEDを点灯させたいので出力用に設定します。
 (13番PINに5Vを出力したいので、出力と設定します)
 この設定には、pinMode( )を使用します。
 これらの指示(命令)群を関数と呼んでいます。
 ※setup()やloop()も関数ということになります。
 ”pinMode関数”を使用しますという言い方ですね。
 pinMode関数の使い方は、
 pinMode(ピン番号, モード)です。
 今回の設定は、
  ・ピン番号:13番(13)
  ・モード:出力(OUTPUT)
  pinMode(13,OUTPUT);
 となります。
 丸かっこの中を引数と言います。
 pinMode関数の場合、引数の数は2個で、
 第1引数はpin番号、第2引数はモードとなります。
 引数は複数ある場合、基本的にはその間を
 ,(カンマ)で区切ります。
 また、関数記述後に;(セミコロン)が付いていますが、
 これは、マイコンに与える指示の1文の終わりを意味します。
 私たちが文章を書くときに。を付けるようなものでしょうか。

 例えば、12番、13番ピンを出力モードに設定する場合、
  pinMode(12,OUTPUT);
  pinMode(13,OUTPUT);
 となりますが、
  pinMode(12,OUTPUT); pinMode(13,OUTPUT);
 と記述しても問題はありません。
 文と文の間にある改行やスペースは意味を持たないのです。
 このプログラミングでは、;(セミコロン)が文の区切りなのです。
 ただし、適切な改行やスペース、インデントは
 プログラムを見やすくするために必要です。

 もう一つ。
 // を付けてその後ろに書かれている内容があります。
 // put your setup code here, to run once:
 など、これは、コメントと呼ばれるもので、
 プログラムの実行には何の意味も持ちません。
 // 以降この行の終わりまでコメント扱いとなり、
 プログラマが自分のメモなどとして書き残します。
 必要以上のコメントは必要としませんが、
 後で見たときにどんなプログラムなのか分かる程度の
 コメントは必須ですね。
では、この1行をsetup()関数内に記述します。

// 本体LEDの点灯
void setup() {
   // put your setup code here, to run once:
   pinMode(13,OUTPUT);     // デジタルPIN(13)を出力用として設定
}
void loop() {
   // put your main code here, to run repeatedly:
}

2.続いて、LEDを点灯させるため、13ピンに電圧をかけます。
 デジタル出力なので、表現的には0か1かです。
 実際には、0Vか5V(pinにより3.3V)かになります。
 この0か1か(0Vか5V)を設定する関数が、
 digitalWrite()です。
 digitalWrite関数の使い方は、
  pinMode(ピン番号, モード)です。
 今回の設定は、
  ・ピン番号:13番(13)
  ・モード:5V出力(HIGH)
  digitalWrite(13,HIGH);
 となります。
では、この1行をsetup()関数内に記述します。

// 本体LEDの点灯
void setup() {
   // put your setup code here, to run once:
   pinMode(13,OUTPUT);     // デジタルPIN(13)を出力用として設定
   digitalWrite(13,HIGH);  // デジタルPIN(13)へ5Vを出力
}
void loop() {
   // put your main code here, to run repeatedly:
}

完成したスケッチです。

// 本体LEDの点灯
void setup() {
   // put your setup code here, to run once:
   pinMode(13,OUTPUT);     // デジタルPIN(13)を出力用として設定
   digitalWrite(13,HIGH);  // デジタルPIN(13)へ5Vを出力
}
void loop() {
   // put your main code here, to run repeatedly:
}
スケッチ例
スケッチ例

では、このスケッチをコンパイル(Arduinoが理解出来る機械語に翻訳)
してArduinoに転送(書き込み)します。

まずは、USBケーブルで、パソコンとArduinoを接続されており、
Arduinoの電源LEDが点灯していることを確認します。

Arduinoの電源LEDが点灯確認
Arduinoの電源LEDが点灯確認

上段のアイコンメニューから、右矢印(⇒)の様なアイコンを
クリックします。
※このアイコンにカーソルを合わせると、
 ”マイコンボードに書き込む”を表示されます。

マイコンボードに書き込み
マイコンボードに書き込み

コンパイルに成功し、Arduinoへの書き込みが始まると、
ArduinoのTX、RXのLEDが点滅し転送作業が行われます。

RXのLEDが点滅し転送作業
RXのLEDが点滅し転送作業

転送されたプログラムは直ぐに実行され、
13番ピンのLED(L)が点灯すると思います。

13番ピンのLED点灯
13番ピンのLED点灯

たった2行のプログラムですが、動作しています。

プログラムに記述ミスがある場合、エラー表示されます。

構文エラー時の表示
構文エラー時の表示

この例は、文の終わりを示す;(セミコロン)を入れ忘れています。
このほか、,(カンマ)の入れ忘れや
全角のスペースの混入などいろいろ考えられます。
特に全角のスペースはこのIDEでは分かりづらく、注意が必要です。

Arduinoに転送されたプログラムは、プログラム領域に書き込まれ、
次のプログラムが転送されるまで電源を切っても常駐しています。
そのため、再び電源を入れると、このプログラムがまた実行されます。
最後に転送されたプログラムがArduinoに残ることになります。

Arduinoに転送済みのプログラムを実行したい場合は、
USBケーブルを接続して電源供給するだけで実行されます。
言い方を変えれば、Arduinoは電源が入れられると、
いま常駐しているプログラムを自動的に実行することになります。
※電源供給だけの場合は、DC7V~DC12Vをピンジャック
 から供給することも可能です。

電池駆動
電池駆動