Posts LEDを制御しよう
Post
Cancel

LEDを制御しよう

この記事で使うソースコード

Lチカ


ここではLEDの制御をします。 プログラミングの世界では、C言語やJavaなどを初めて学ぶときに単にHello World!と表示するプログラムを作成することが多いです。 電子工作の世界では、マイコンを初めて使うときにLEDを点滅させるLチカと呼ばれる実験をします。 早速Lチカのプログラムを書き込んでLEDをチカチカさせましょう。

まず開発環境のセットアップでインストールしたArduino IDEを起動してください。

Arduino IDEを起動したら、以下のソースコード(blink.ino)を入力してください。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#define LED 2

void setup() {
  // LEDに接続したピンを「出力(OUTPUT)」に設定
  pinMode(LED, OUTPUT);
}

void loop() {
  // LEDを点灯
  digitalWrite(LED, HIGH);
  delay(500);
  // LEDを消灯
  digitalWrite(LED, LOW);
  delay(500);
}

次にプログラムが正しいかどうかチェック(コンパイル)します。

Arduino IDEのメニュー欄(画面上部)にある「矢印」マーク(検証ボタン)をクリックしてください。

ltika1

検証ボタンをクリックするとスケッチの保存先を聞かれると思います。

余談ですが、Arduinoではプログラムのことをスケッチと呼び、拡張子は「ino」です。

このWebページでは「スケッチ」と「プログラム」の用語は区別しません。

Arduinoのスケッチはスケッチ名と同じフォルダにスケッチが保存されている必要があります。

例)「/スケッチ名/スケッチ名.ino」

任意の保存先に適当な名前を付けて保存してください。

「コンパイルが完了しました」と表示されればOKです。

ltika2

コンパイルに失敗した場合はトラブルシューティングのページを参照してください。

コンパイルが完了したら、次は100kinSATにプログラムを書き込んでみましょう。

プログラムを書き込む際は、PCと100kinSATをUSBケーブルで接続してください。

PCと接続したら、Arduio IDEがESP32マイコンを正しく認識しているか確認します。

メニューの「ツール」→「シリアルポート」にCOMポートが表示され、チェックが入っていることを確認してください。

COMポートの番号はボードによって異なるので写真と異なる番号でも問題ありません。

検証ボタンの隣にある「マイコンボードに書き込む」ボタンをクリックします。

ltika

「マイコンボードに書き込む」ボタンをクリックすると、再度コンパイルが行われたのち書き込みが行われます。

ltikagif

Lチカ出来ましたね!

ソースコードの説明


マクロ定義

1
#define LED 2

GPIO2ピンをLEDという名前にマクロ定義しています。

このように定義することで、プログラム中で「LED」と記述したときと「2」と記述したときのどちらも「2」を表すようになります。

1
2
  // LEDを点灯
  digitalWrite(LED, HIGH);

そのため上記プログラムはdigitalWrite(2, HIGH);と書いた場合と同じ意味を持ちます。

マクロ定義を活用することでLEDを接続しているピンをHIGHにしていることが明確になり、ピン番号をそのまま使用するよりプログラムが読みやすくなります。

また、プログラムの書き間違いを防止することにも繋がります。

setup関数

1
2
3
4
void setup() {
  // LEDに接続したピンを「出力(OUTPUT)」に設定
  pinMode(LED, OUTPUT);
}

setup関数はESP32マイコンに電源が入ったときやリセットしたときに1度だけ実行される関数です。

setup関数ではGPIOピンの入出力を設定したりシリアル通信のボーレートを設定したりします。

pinMode(pin, mode)でGPIOピンの入出力を設定することができます。

ここでは「LED(2)」を「OUTPUT(出力)」に設定しています。

loop関数

loop関数はsetup関数で各種設定を行ったあと実行される関数です。

loop関数はsetup関数と異なり、繰り返し実行されます。

1
2
3
4
5
6
7
8
void loop() {
  // LEDを点灯
  digitalWrite(LED, HIGH);
  delay(500);
  // LEDを消灯
  digitalWrite(LED, LOW);
  delay(500);
}

上記のプログラムではLEDに接続しているGPIO2を500ミリ秒間HIGHにして、その後500ミリ秒間LOWにするという動作を繰り返します。

ピンの状態をHIGHにするとLEDが点灯し、LOWにすると消灯します。

この動作を繰り返すことでLEDがチカチカ点灯するためLチカと呼ばれます。

This post is licensed under CC BY 4.0 by the author.

開発環境のセットアップ

トラブルシューティング