2.1 LEDを点灯させよう

プログラム学習の最初の一歩として"Hello, world!"を出力するように、LEDをプログラムで制御することは物理プログラミングを学ぶための伝統的な入門です。

必要な部品

このプロジェクトには、以下のコンポーネントが必要です。

全キットを購入することは非常に便利です。以下のリンクから購入できます:

名前

このキットのアイテム

リンク

ESP32 Starter Kit

320+

ESP32 Starter Kit

また、以下のリンクから個別に購入することもできます。

コンポーネントの紹介

購入リンク

ESP32 WROOM 32E

BUY

ESP32カメラ拡張ボード

-

ブレッドボード

BUY

ジャンパーワイヤ

BUY

抵抗器

BUY

LED

BUY

利用可能なピン

このプロジェクトで使用可能なESP32ボード上のピンのリストです。

利用可能なピン

IO13, IO12, IO14, IO27, IO26, IO25, IO33, IO32, IO15, IO2, IO0, IO4, IO5, IO18, IO19, IO21, IO22, IO23

回路図

../../_images/circuit_2.1_led.png

この回路は簡単な原理で動作し、図に示されているように電流の方向があります。ピン26が高レベルを出力すると220オームの電流制限抵抗を通過してLEDが点灯します。ピン26が低レベルを出力するとLEDが消えます。

配線図

../../_images/2.1_hello_led_bb.png

コードをアップロードする

  1. ファイル 2.1_hello_led.ino をパス esp32-starter-kit-mainccodes2.1_hello_led から開くか、このコードをArduino IDEに直接コピーします。

  2. 次に、Micro USBケーブルを使用して、ESP32 WROOM 32Eをコンピューターに接続します。

  3. ボード(ESP32 Dev Module)と適切なポートを選択します。

    ../../_images/choose_board.png
  4. 今、アップロードボタンをクリックして、コードをESP32ボードにアップロードします。

    ../../_images/click_upload.png
  5. コードが正常にアップロードされると、LEDが点滅するのが見えます。

どのように動作するのか?

  1. ledPin という名前の整数定数を宣言し、それに26という値を割り当てます。

    const int ledPin = 26;  // The GPIO pin for the LED
    
  2. 次に、 setup() 関数でピンを初期化します。ここで、ピンを OUTPUT モードに初期化する必要があります。

    void setup() {
        pinMode(ledPin, OUTPUT);
    }
    
    • void pinMode(uint8_t pin, uint8_t mode);: この関数は、特定のピンのGPIO動作モードを定義するために使用されます。

      • pin はGPIOピン番号を定義します。

      • mode は動作モードを設定します。

      基本入出力のために、以下のモードがサポートされています:

      • INPUT はプルアップもプルダウンもない入力(高インピーダンス)としてGPIOを設定します。

      • OUTPUT は出力/読み取りモードとしてGPIOを設定します。

      • INPUT_PULLDOWN は内部プルダウン付きでGPIOを入力として設定します。

      • INPUT_PULLUP は内部プルアップ付きでGPIOを入力として設定します。

  3. loop() 関数にはプログラムの主なロジックが含まれ、変更間の一秒の間隔を置いて、ピンを高低に交互に設定します。

    void loop() {
        digitalWrite(ledPin, HIGH);   // turn the LED on (HIGH is the voltage level)
        delay(1000);                       // wait for a second
        digitalWrite(ledPin, LOW);    // turn the LED off by making the voltage LOW
        delay(1000);                       // wait for a second
    }
    
    • void digitalWrite(uint8_t pin, uint8_t val);: この関数は、選択したGPIOの状態を HIGH または LOW に設定します。この関数は、 pinModeOUTPUT として設定されている場合のみ使用されます。

      • pin はGPIOピン番号を定義します。

      • val は出力デジタル状態を HIGH または LOW に設定します。