【Arduino入門】サンプルプログラムで内蔵LEDを1秒間隔で点滅させる仕組みを解説
この動画では、Arduino(ESP32-S3)のサンプルプログラムを使って、マイコンボードに内蔵されたLEDを1秒間隔で点滅させる仕組みを解説します。
使用するサンプルプログラム
Arduinoを開いて、
ファイル → スケッチ例 → 01.Basics → Blink
から、点滅プロジェクトを開きます。
以下のプログラムが表示されます。
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
プログラムの流れ:まずは setup() が呼ばれる
マイコンにプログラムを書き込んで実行すると、最初に setup() 関数 が呼ばれます。
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
- void:戻り値なし
- ():引数なし (これらの詳細は別動画で解説予定)
setup() の中括弧 {} に書かれた処理(11〜12行目)が最初に実行されます。
コメント(//)はメモ書きとして使う
11行目の // 以降はコメントです。
プログラムの動作には影響せず、処理の目的をメモしておくために使います。
pinMode() でピンを GPIO として設定する
12行目の pinMode() 関数では、ピンの入出力設定を行います。
ESP32-S3 のピン配置を見ると、両側に多くのピンが並んでおり、ピンによって複数の機能を持っています。
例:
- GPIO21:GPIOとしてのみ使用
- GPIO20:GPIO / USB / ADC / UART など複数の機能を持つ
pinMode() はその中から GPIO として使うピン番号 と 入力 or 出力 を指定する関数です。
LED_BUILTIN は「2番ピン」を意味する
プログラムの7行目には次の記述があります。
#define LED_BUILTIN 2
これは LED_BUILTIN という名前を「2」に置き換える という意味です。
つまり、コード
pinMode(LED_BUILTIN, OUTPUT);
は、コード
pinMode(2, OUTPUT);
と同じ意味になります。
2番ピンは内蔵LEDにつながっている
ESP32-S3 のピンレイアウトを見ると、GPIO2 は以下の機能を持っています。
- GPIO
- ADC
- タッチセンサー
そして基板上では IO2 と書かれた内蔵LED がこの GPIO2 に接続されています。
そのため、GPIO2 を出力に設定して電圧をかけると、基板のパターンを通じて内蔵LEDが点灯します。
loop() 関数で LED の点滅を繰り返す
setup() の後は、loop() 関数 が呼ばれ続けます。
cpp
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
17〜20行目の処理を繰り返し実行します。
digitalWrite():GPIO ピンに電圧を出力する
digitalWrite(LED_BUILTIN, HIGH);
- LED_BUILTIN(=2番ピン)を HIGH(3.3V) にする
- 内蔵LEDに電圧がかかり 点灯
digitalWrite(LED_BUILTIN, LOW);
- 2番ピンを LOW(0V) にする
- 電圧がなくなり 消灯
delay():指定した時間だけ待つ
delay(1000); は 1000ミリ秒(1秒)待つ という意味です。
つまり、
- LED を点灯 → 1秒待つ
- LED を消灯 → 1秒待つ
- 1に戻る
という動作を繰り返し、1秒間隔の点滅が実現します。
実際の動作
プログラムを実行すると、内蔵LEDが
- 1秒点灯
- 1秒消灯
を繰り返します。
まとめ
- setup() でピンの初期設定を行う
- LED_BUILTIN は GPIO2 を指す
- GPIO2 は内蔵LEDにつながっている
- loop() で HIGH/LOW と delay を繰り返し、点滅を実現
Arduino 入門として非常にわかりやすいサンプルなので、まずはこの動作を理解することで、GPIO制御の基礎がしっかり身につきます。
