LEDを点滅させる

解説

GPIOピンとGNDの間に、LEDと抵抗を繋ぎ、gpio_set_level関数と、vTaskDelay関数を組み合わせて使用することで、LEDを点滅させることができます。

LEDを点灯させるには、LEDにどれぐらいの電流、電圧を流せばよいのか、そのためにはどのような回路を組めば良いのか。

点灯させるLEDのデータシートを見ます。
電気的特性(Electrical Characteristics)の順電流(IF)と順電圧(VF)を見ます。

電気的特性の順電流(IF)が 20[mA]、順電圧(VF)が2.0[V]
のLEDを例に解説します。

「電気的特性」の意味は、「LEDに電気的特性の順電流(IF)を流したら、LEDの電圧が電気的特性の順電圧(VF)になる」という意味です。

ESP32-WROOM-32i の出力ピン(HIGH電圧3.3[V])とGNDの間に、LEDと抵抗を繋ぐことを考えます。



抵抗の値は、いくつにしたらよいか。

LEDの電気的特性(順電流(IF)20[mA]、順電圧(VF)2.0[V])から、抵抗として、電流20[mA]、電圧1.3[V](出力ピンHIGH電圧3.3[V]-LED順電圧2[V])、流れるような抵抗にしたらよいことがわかります。

抵抗値 = 電圧 / 電流 = 1.3[V] / (20 * 10 ^ -3) = 65[Ω]
ということで、65[Ω]抵抗の抵抗を繋ぐとよさそうだということがわかります。

抵抗の入手のしやすさから、100[Ω]の抵抗を使用することにします。

部品表

部品名 数量 商品名 参考価格
ESP32-WROOM-32 1 ESP32-DevKitC-32E ESP32-WROOM-32E開発ボード 4MB 1個1,600円
ブレッドボード ブレッドボード BB-801 1個220円
LED 1 赤色LED 3mm OSDR3133A 100個350円
100Ω抵抗器 1 カーボン抵抗(炭素皮膜抵抗) 1/6W 100Ω 100本120円
ジャンパーワイヤ 適量 ジャンパーワイヤ(オス-オス)セット 1セット300円

接続例

出力ピンとして、GPIO17 を使用した場合の接続例

ESP-IDFを用いたプログラム開発

Raspberry Pi にセットアップした ESP-IDF のサンプルディレクトリの「Blink」プロジェクトを流用して、プロジェクト作成、ビルド、フラッシュしていきます。

前提

ESP-IDF の Raspberry Pi へのセットアップ」を実施していない場合は、実施します。

環境変数の設定

ESP-IDFを用いたプログラム開発を行うには、ESP-IDF関連ツールのパスを通す必要があります。

以下のコマンドを実行し、関連ツールのパスを通します。(先頭のドットとパスの間には、半角スペースが一つあります)



補足)
関連ツールのパスを通すスクリプトの実行は、起動したターミナルごとに、行う必要があります。
起動したターミナルで、一度スクリプトを実行したならば、そのターミナル上では、どのディレクトリからでもESP-IDFが使用できます。

プロジェクト作成

以下のコマンドを実行し、ESP-IDFのサンプルディレクトリの「Blink」プロジェクトを、「esp」ディレクトリにコピーします。



「esp」ディレクトリ下に、「blink」ディレクトリができます。

デバイスの接続と、シリアル通信デバイス名の確認

デバイスの接続と、シリアルポートパスの確認を行います。

Raspberry Pi に、ESP32-WROOM-32 を接続している場合は、一度、接続を抜きます。

以下のコマンドを実行し、シリアル通信デバイスをリスト表示します。



USBケーブルを用いて、Raspberry Pi に、ESP32-WROOM-32 を接続し、再度、シリアル通信デバイスをリスト表示するコマンドを実行します。

新しく表示されたシリアル通信デバイス名が、ESP-WROOM-32のシリアル通信デバイス名です。
たとえば、「/dev/ttyUSB0」。

プロジェクトの設定

以下のコマンドを実行し、プロジェクトのディレクトリに移動します。



以下のコマンドを実行し、プロジェクトのターゲットを設定します。



以下のコマンドを実行し、プロジェクトの各種設定を行うmenuconfigを起動します。



menuconfigの画面例


「Example Configuration」を選択し、「Enter」キーを押下します。



「Blink GPIO number」を「17」に、
「Blink period in ms」を「2000」に、
変更します。



「s」キーを押下し、変更した設定を保存します。(設定を保存するファイルパスは変更せず、上書き保存します)
「ESC」キーを押下し、menuconfigを抜けます。

ビルド

以下のコマンドを実行し、プロジェクトのプログラムをビルドします。



完了するまで、しばらく待ちます。

フラッシュ

ビルド結果を、マイコンに書き込むフラッシュのコマンドは以下の書式です。



シリアル通信デバイス名が「/dev/ttyUSB0」の場合は、以下のコマンドを実行します。



完了するまで、しばらく待ちます。

参考)コード

blink_example_main.c

動作確認

フラッシュが完了すると、マイコンに書き込まれたプログラムが起動します。

LEDが2秒ごとに点滅します。