前回、Aruduino unoとESP-WROOM-02間のUART通信が上手く行かないという件で、職場のオシロスコープをこっそり使って波形をとってきました。
Ch1がAruduino unoのTx端子(=ESP-WROOM-02のRx端子)、Ch1がAruduino unoのRx端子(=ESP-WROOM-02のTx端子)です。この波形を見ますと、ESP-WROOM-02はAruduinoからのコマンド送信に対して応答を返しているもののAruduino側が認識できていないだけのようです。これは、AruduinoとESP-WROOM-02ではHiレベルと認識することができる境目の電圧(スレッショルドレベル)が異なっているためと考えられます(そもそも電源電圧に5Vと3.3Vという違いがある)。
両者のデータシートが手元にないのではっきりとしたことは言えませんが、AruduinoのRx端子は電圧が3.3V程度ではHiレベルと認識してくれないようです。ESP-WROOM-02のRx端子に3.3V以上の電圧を掛けるのもあまりよろしくはありません(そんなに簡単に壊れはしないとは思いますが)。
この問題を解決するためには、トランジスタを使用した簡単な回路を組むかロジックレベル変換ICを使えばよいですが、どちらも手元にないのでこれ以降は部品の調達が済んでからにしたいと思います。
コメント