【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秒)待つ という意味です。

つまり、

  1. LED を点灯 → 1秒待つ
  2. LED を消灯 → 1秒待つ
  3. 1に戻る

という動作を繰り返し、1秒間隔の点滅が実現します。

実際の動作

プログラムを実行すると、内蔵LEDが

  • 1秒点灯
  • 1秒消灯

を繰り返します。

まとめ

  • setup() でピンの初期設定を行う
  • LED_BUILTIN は GPIO2 を指す
  • GPIO2 は内蔵LEDにつながっている
  • loop() で HIGH/LOW と delay を繰り返し、点滅を実現

Arduino 入門として非常にわかりやすいサンプルなので、まずはこの動作を理解することで、GPIO制御の基礎がしっかり身につきます。

error: コンテンツ保護のため右クリック使用禁止