google-site-verification: google3bd66dd162ef54c7.html

ESP32を動かして消費電流を測定

 前の記事でESP32を動かす準備が出来たので今回は実際に動かしてみます。動かし方にはいろいろあるようですが、一般的な、というか私にはこれしか出来ない Arduino の IDE でやってみます。

▼ESP32
ESP-32

 まずはArduino の IDE にESP32を登録する必要がありますが、その前に、IDE のバージョンを最新版に上げておきます。Arduinoをサポートする組織のゴタゴタがあって先行きが不透明だったので、うちのArduino IDEは1.6.5でバージョンアップを止めていたのですが、問題も片付いたようなので、バージョンアップするにはいい機会でしょう。

 とは言っても、普通にやると前のバージョンが消えてしまうので、後で何か困ることがあるかも知れません。ということで、古いバージョンを残してインストールする方法で最新版のArduino IDEをインストールしました。なお、今回インストールしたバージョンは1.8.3でした。

 バージョンアップした Arduino IDE にESP32を登録してやる必要があります。普通はIDEのボードマネージャから登録するのですが、まだ準備が出来ていないようなので、直接ファイルを追加する方法で登録します

◆ Arduino IDEへのCPUの登録
 先人の方が解説記事をいろいろ書かれているのでそれらを参考に登録作業を行います。
 rukihenaさんの書かれた、ESP32(ESP-WROOM-32)でLチカがたいへん判り易くて参考になりました。ありがとうございました。

 CPUの情報の登録先は、自分が使っているスケッチの保存先のフォルダを使い、以下の画面に示すパスに登録しました。MySchechesV16のフォルダがスケッチの保存先で、そこに \hardware\espressi\esp32 のフォルダを自分で切り、一連のファイルを保存します。

▼ESP32のファイルの登録場所
ESP32のハードウェア情報インストール先
 保存が終わったら \toolsの中のget.exeを実行して追加ファイルの入手を行いますが、そのあたりは参考にさせて頂いたサイトの解説通りです。

 話がちょっと脱線しますが、以前ボードマネージャから登録を行った ESP8266 のファイルの保存先を探してみると、以下の場所に入っていました。(人によって上位のフォルダ名は変わってくると思います)

▼ESP8266が保存されていた場所(参考)
ESP8266のハードウェア情報インストール

 CPUのハードウエア情報は、スケッチの保存フォルダ、ユーザーのアプリケーション情報フォルダ、Arduino IDEのプログラム保存フォルダの3か所があるようです。ライブラリについてもこんな感じだったと思います。(このあたりの情報はあまり自信がありません)

 ともかく設定が済めば Arduino IDE から ESP32 を動かすことが出来るようになります。プログラムの書き込みには、EN(リセット)と IO0 のスイッチを押し、その後ENを離した後、プログラムの書き込みが終わるまで IO0 を押し続ける必要があります。このあたりはちょっと面倒です。

2.WiFi Scan 実行結果
wifi scan
 Wifi Scanを実行した時のコンソール画面です。とは言ってもほとんど伏字になっていてすみません。
 
 ESP32 のプログラムについて語れるレベルにはありませんが、消費電流について、測定結果を少しまとめておきます。

▼電流測定用のゲタ
電流測定ゲタ
 左が、昔作ったATmega328の消費電流測定用のゲタです。1Ωのシャント抵抗が入っているので電流を簡単に測定出来ます。ESP32をATmega328とピンコンパチにしたおかげで、こういう便利な小道具が使えるようになりました。

▼ゲタを履かせる
ゲタを履かせる

▼Arduino (ユニバーサルの) に載せて動かす
消費電流測定
 大した周波数の信号では無いので、ミニオシロ (DSO Shell) が活躍してくれました。

 以下いくつか事例を見ていきます。

▼リセット(EN)からの電流の立ち上がり (WifiScan実行時)
WiFiScan実行の立ち上がり
 シャント抵抗は1Ωなので、50mVは50mAと読み替えることが出来ます。プログラムはExampleに入っていた WiFi Scanが走っています。

 内部回路が順番に活性化されているのでしょうか、段階的に電流が上がって行って、最終的には130mAくらいの消費電流になっています。但しスパイク状に電流が流れていて、ピークは200mAになっています。

 なお、このESP32 には電源端子に470μFを2個取り付けているので外から見たピーク電流は抑えられています。もしこのコンデンサが無かったら、もっと大きなピーク電流が流れたはずです。

▼WiFi Scan 動作中の電流波形
WiFi使用時の電流波形
 拡大して見ると、ピークで200mA程度の電流が流れています。

▼3.3Vの電源電圧ドロップ
3.3Vのドロップ
 140mV程度のドロップが発生しています。まあこれくらいは許容範囲だと思います。ちなみに電源の3.3Vは200mAクラスのLDOな三端子レギュレーターで作っています。

 プログラムを変えていろいろ試したのですが、Lチカだと消費電流は55mA程度でした。

◆ BASICを動かす
 ESP32は IO12 を 3.3V にプルアップして起動すると小さな BASIC が動くのですが、この時の消費電流は約20mAでした。ちなみに ESP32にArduinoのIDEからスケッチを書き込んだ後でも BASICは起動しました。ということは、ESP32を組み込みなどで使う時に IO12に変なレベルが入ると、勝手にBASICが走ることになりかねないので、注意が必要だと思います。たぶんこの機能を無効にする方法はあるのだと思いますが・・・、

▼ESP32のBASICの実行例
ESP32のBASIC
 この BASIC では整数しか扱えないようですが、その上限の値を知りたかったので、簡単なプログラムを書いてみました。結果は上の画面の通りで、プラスマイナス2億くらいの範囲まで扱えるようでした。内部では符号付き32ビットで計算しているのでしょう。

◆まとめ
 ということで、消費電流の話を中心に、ESP32をArduioのIDEから動かした事例の紹介でした。やはりWiFiを使うとかなりの消費電流になるようです。電源容量に制約がある場合はスリープをうまく使う必要があります。
 あと、BTを使った場合はどうなるのか興味深いところです。このあたりは機会があれば実験してみたいと思います。
関連記事

コメントの投稿

管理者にだけ表示を許可する

No title

起動時に1A越えの大電流ガーだの起動後も600mA越えの大電流ガーだのと
無暗に不安をあおってる輩がネットで見られますが、
ぶっちゃけいうとhttp://nemuisan.blog.bai.ne.jp/?eid=220875ですけど
容量の大きいコンデンサつけるだけでしっかり対処できるんですね。
とても勉強になりました。

とおりすがりさん、おはようございます

コメントありがとうございます。

貼っていただいたリンクの記事は知っています。高速なシリーズレギュレーターで対策する、とういうストーリーなのでああいう書き方になっているのだと思います。
記事に書いてある測定結果は事実ですから、不安をあおっている訳では無いかと。
それにねむいさんの書かれる記事はどれもレベルが高くてすごく参考になります。
カレンダー
02 | 2017/03 | 03
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード