ショップ
- 0.96インチ
- 1.3インチ
製品概要
OLED ディスプレイは、128×64 ドットのグラフィックディスプレイになっており、ボードの稼働状態や利用者に伝えたい情報を、画像や文字で分かり易く表示できるようになります。
鮮やかな発色で、白、水色、黄色などの単色のものが一般的です。また、サイズは、0.96インチと1.3インチのものの入手性が良いようです。
インターフェースは、I2CとSPIがありますが、私自身は、I2Cの方が信号線が少なく結線が簡単なことと、いくつかのセンサーと一緒に使用するのであれば、センサーのインターフェースがI2Cであることが多いため、実質的に使用するMCUの信号線が減るために、ほとんどの場合I2Cのディスプレイを使用しています。

ライブラリのインストール
OLED ディスプレイを利用するためのライブラリとして、U8g2 ライブラリを使用する例を示します。
この他にも、よく利用されるライブラリとしてAdafruit のSSD1306 などがあります。
U8g2 ライブラリは、Arduino IDE のライブラリマネージャを利用してインストールすることができます。ライブラリマネージャの検索フィルタに[U8g2] を入力して絞り込むと、図のように表示されます。

ライブラリマネージャのダイアログ上でインストールするライブラリの欄をクリックすると、インストールボタンが表示されるので、最新バージョンを選択して、ライブラリをインストールします。関連するライブラリも合わせてインストールするか聞かれた場合には、それらもすべてインストールしてください。
U8g2 ライブラリの利用
ライブラリのインストール後、Arduino IDE メニューから[ファイル] ⇒ [スケッチの例] を選択すると、リストの下の方にU8g2 フォルダが追加されているのが確認できます。U8g2 フォルダの中を確認するといくつかのサンプルスケッチがあり、選択して実行することができます。
例として[u8g2] ⇒ [full buffer] ⇒ [GraphicsTest] を選択します。このスケッチは、デモ用の簡単なグラフィック表示を行うものです。
このサンプルスケッチをコンパイル・実行するためには、コメントアウトされたリストの中から適切なu8g2 コンストラクタを選択するか、自分自身で追加する必要があります。ここで利用するOLED ディスプレイはI2C インターフェースで接続されており、コントローラとして、0.96インチの場合にはSSD1306、1.3インチの場合にはSH1106を使用しているので、サンプルスケッチの60 行あたりの、以下のコンストラクタを有効にしてください。
// 0.96インチの場合
//U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE);
// 1.3インチの場合
//U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE);
このコンストラクタを有効にすることにより、スケッチのコンパイル、実行ができるようになり
ます。
文字表示のスケッチ例
前述のサンプルスケッチはグラフィックスの例でしたが、以下に0.96インチでの文字表示のスケッチ例を示します。
#include <U8x8lib.h>
U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE);
void setup(void)
{
u8x8.begin();
u8x8.setPowerSave(0);
}
void loop(void)
{
u8x8.setFont(u8x8_font_chroma48medium8_r);
u8x8.drawString(0,0," ESP32-SLIM");
u8x8.drawString(0,1," ----------");
u8x8.drawString(0,3,"ESP32E,16M Flash");
u8x8.drawString(0,4,"USB,WiFi,Bluet");
u8x8.drawString(0,5,"NARROW DIL");
u8x8.drawString(0,6,"OLED, TFT Disp.");
u8x8.drawString(0,7," MicroFan");
delay(2000);
}