ショップ

製品概要

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);
}