arduino UnoやJapanino、ESP-WROOM-02 の電源容量 (11/4)
「japaninoの電源電圧」は3.3Vでも動くが、通常USBケーブルや電池パック(単4*3=4.5V)で繋いでいるのなら「電源電圧=5V」になる。よって「端子電圧」も「0~5V」になるはず。
arduino UnoやJapanino、ESP-WROOM-02 の電圧・電流について (10/31)で、arduinoなどのI/Oピンの端子電圧が5VでもESP-WROOM-02のような3.3Vの端子電圧のマイコンやICに繋いでも大丈夫のような事を書いたが、それは間違いだった。3.3Vの方の機器が最悪壊れてしまう可能性がある。
ESP-WROOM-02の配線図のサイト様の通り、部品を買ってきて繋いだのだが、最初JapaninoをUSBシリアル変換として使うようにスケッチを書き込み、D0,D1のRX,TXをESP8266のTXD,RXDに入力していた。電源は3.3Vなので電池で与えたり、ACアダプタの5V 1A(MAX)を回路図の三端子レギュレータに入れて与えたりしていた。
ATコマンドはTera TermやJapaninoのシリアルモニタで表示させていたが、どうもATコマンドの応答が返ってこない。ATと打つがOKとも何とも一切返ってこないのだ。
たまに文字化けした短い表示がされるので、通信環境なのかと色々設定をいじってみたが、改善しない。
それで冒頭の5Vと3.3Vの違いに気づいたのだ。
ひょっとして壊したかと思い、慌ててUSBシリアル変換モジュールの3.3V出力版をネットで購入した。
しかし結果は同じ。やっぱりESP8266本体を壊したか―と思い、じゃあarduinoにしてしまえとESP8266用のサイトに行ってダウンロードするも、ブートローダー書込みでJavaがファイルを書込めなくてエラーになる。ん~、何を書込めないのか、ちょっと調べるとESP8266用のarduinoはブートローダー領域の「SPI-ROM」という領域に特別なファイルを書込むようだ。SPIというぐらいだから、SPIが動かないと書き込めないのだが、それを書込むツールでも接続エラー(connect sync : false)になる。
うわーもう捨てるしかないか~。しょうがないので控えで買っておいたもう一つのESP-WROOM-02をセットする。これはJapaninoでUSBシリアル変換してないから5Vを3.3VのI/O端子に入れていない。ちゃんと3.3VのUSBシリアル変換モジュールで初めて書込むはず。
それなのにツールでの書込み結果は同じ接続エラー。あー?壊してないのになんで?じゃあ最初のATコマンドに戻ってやってみるとやっぱりATコマンドの応答が返ってこない。
なんじゃそりゃあ~。ハードなんて嫌いだー。配線を一つ一つきちんと結線されているか確認し、必要な抵抗やコンデンサをネットで調べて繋ぎ、それでも一歩も進めない。
もういいや。壊しても。開き直って、ACアダプタ(5V 2Aや1A)繋いでいたのをもうどうにでもなれという感じで、3.3VのUSBシリアル変換モジュールから5V引き出して三端子レギュレータに入れる。ネットでは成功事例もあるがUSBは電流容量がMAX500mAだから不足してESP-WROOM-02が不安定になってリブートを繰り返すとの怖い話が載っていて、決しておススメではないようだった。
それが、難なくATコマンドの応答「OK」が返って来るじゃないか!
えー、USBの方がACアダプタより電流多いの?
確かにうまくいっているサイト様もWi-Fiで繋ぎ出したら不安定になるかもと言ってたけど、ATコマンドは動いていた。
わざわざ別電源でACアダプタを使ったのに、2A(MAX)という表記は、通常は20mAとか低いのかな?
まったくー。まあこの3.3VのUSBシリアル変換モジュールが大丈夫だっただけで、他の種類のはうまくいくとは限らない。
でもこれで何日も止まってて、ハードを恨めしく思っていたのに・・・
電流の容量が不足するからといって、ATコマンドの応答だけ返ってこないなんて。文字化けしたデバッグメッセージは表示されていたのに。
ここ確かに鬼門だわ。ESP-WROOM-02開発ボードが売れるわけだ。こんなに手間も時間も掛けて原因が究明できないなら、お金で解決した方が早いわ。
でもそれだと自分で自由に組んだ時他のセンサーを載せたりしてその時に問題が発生し結局は後回しになるかもしれない。
また一つ勉強になりました。
で、結局どういう回路図になったのか、以下に示す。
元々は前回の記事の配線図のサイト様を基本にしている。部品もほぼ同じ。
WROOM 単体に Arduino スケッチで Wi-Fi ストリーミング - mgo-tec電子工作
配線図
この元々の配線図だが、
上に対応して今回作成した回路図はこれ。
[黄緑] +5V (ATコマンドの応答が無い場合、電流容量が
不足している事が原因。別電源を用意すべき)
[赤] +3.3V 供給ライン
[ピンク] IO0接続切替:
+3.3V=実行/GND=書込みモード
[黄色] 抵抗追加(IO2,IO15,IO0結線 - 開発ボード参考)
[PC]
arduinoIDE 1.6.X 以上のシリアルモニタがおススメ
ATコマンドは手動ではなく行送信で
自動スクロールON
115200
CRLF
シリアルモニタはESP-WROOM-02電源ON後、RESET スイッチを押す。
文字化けしたデバッグメッセージ表示後、readyと出るので、それからATコマンドを送信。
[部品表]
・ ESP-WROOM-02 ・・・ 秋月のブレッドボード用変換基板付き650円(ピンヘッダ付き半田付け要)
・ TA48M033 セット ・・・ セラコン0.1μFと電解コンデンサ47μF35Vがセットで100円
・ 超小型USB-シリアル変換モジュール ・・・ 秋月のAE-FT234XでマイクロBタイプ 5V→3.3VでI/O端子電圧が5Vにも(切替なしで)対応なので、今回電流容量も十分で600円(ケーブル必要)
・ タクトスイッチ1個と抵抗10kΩ×3本、1kΩ×4本 ・・・ (10kΩを2本並列接続で500Ω - 470Ωでも可)(各10ヶ100円くらい?)
・ セラミックコンデンサー ・・・ 0.1μF×1個(千石で10個100円)
・ ブレッドボード ・・・ 長さ7~8cm左右にVCC/GNDラインがあるモノ270円
・ ジャンパワイヤー ・・・ オスオスセット(40本入りくらい)220円
--- 合計2200円 --- (上の3つなら1350円)
(ESP-WROOM-02開発ボードも2200円くらいなので実際に動かして動くかどうかなら手間や使い勝手を考えたらそっちの方が絶対楽)
※しかし余り経験値にならないし、自分で基板を起こしてフィールド運用とかするなら、(ACアダプタとか電源周りでうまくいかなかったので特にこのUSBシリアル変換モジュールは新たに買うなら600円で安いし実績もある)
この通り部品を揃えて1回作って回路の検討をした方がよい。
結果、次のようにATコマンドの応答が返ってくるようになった。
センサーからのAD入力やAVRとの接続、まだまだ課題は残っている。