ESP8266(WROOM-02)がArduino IDEで動くようになりましたので、手始めにキャラクタ液晶をつないでみました。
使ったのは、以前Arduino Pro Miniで使用した、aitendoの激安液晶です。
ソフトウェアも、同じく
I2C液晶のArduinoライブラリ – ST7032 | オレ工房
を使わせていただきました。
【2019/1/30追記:ライブラリがアップデートされたので、現在は以下の修正は不要になりました。】
ライブラリ(ST7032.cpp)は微小な修正が必要でした。
このファイルは、ドキュメントフォルダの中の
Arduino\libraries\arduino_ST7032-master\ST7032.cpp
に格納されています。
修正は、ST7032.cppの30行過ぎのあたり、以下の赤い部分を追加しました。
#include "ST7032.h" #include "Arduino.h" #include <Wire.h> #if defined(__AVR__) #include <avr/pgmspace.h> #endif
配線は、下図のようになります。
これはこちらの回路からの差分です。
Arduinoのスケッチ書き込みに必要な回路は省略しています。
以上で、上記のST7032ライブラリに付属しているサンプルスケッチが動作しました。
なお、上の配線はI2CのSDA・SCLがそれぞれIO4・IO5になっていますが、このマッピングはESP8266のボードによって異なります。
今回は、Arduinoe IDEのボードメニューから”Generic ESP8266 Module”を選択しており、このボードでのピン配置に従います。
このピン配置の情報は、先日Arduino IDEに追加したボード情報の中で記述されています。
ファイルは、
%USERPROFILE%\AppData\Roaming\Arduino15\packages\esp8266\hardware\esp8266\1.6.5-947-g39819f0\variants\generic
というフォルダの中の”pins_arduino.h”です。
(%USERPROFILE%には、”C:\Users\ユーザ名”が入ります。
また、”1.6.5-947-g39819f0″の部分はIDEのバージョンによって変わってきそうです。)
このファイルでは、I2CおよびSPIのピン配置が以下のように定義されています。
static const uint8_t SDA = 4; static const uint8_t SCL = 5; static const uint8_t SS = 15; static const uint8_t MOSI = 13; static const uint8_t MISO = 12; static const uint8_t SCK = 14; static const uint8_t BUILTIN_LED = 1; static const uint8_t A0 = 17;
ちなみに、Generic以外に定義されているボードは、現時点では
adafruit
nodemcu
thing
wifio
の4つでした。
なお「thing」はSparkfunの出しているESP8266ボードですが、このボードの解説ページ(以下のリンク)は分かりやすくて良いと思います。
ESP8266 Thing Hookup Guide – learn.sparkfun.com
ESP8266でArduinoを動かす場合、簡単なスケッチでもファイルサイズは200KB超と結構大きなものができてきますが、上の解説によると、WiFiや通信機能を動作させるために、裏で行う様々な処理のためのコードが含まれているそうです。
コメント