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秒ごとに点滅します。