[I2C] 0.96 inch OLED ディスプレイ (ER-OLED0.96-3W / SSD1306)

0.96 inch の OLED (Organic Light Emitting Diode) ディスプレイです。単色 128x96 フルグラフィックです (SPI 接続の記事はこちら)。



購入

Amazon 等で購入できます (購入時価格: ¥995)。

この製品には表示色がホワイトの他に "ブルー" と "イエロー&ブルー" というのがあります。ブルーはお好みなのでいいとして、"イエロー&ブルー" は買っちゃダメです。

画像を見れば解るように、2色任意で表示できる訳じゃありませんし、フルグラフィックなのにイエローとブルーの間に隙間があるので使い所が限られてしまいます。

また、このディスプレイは I2C 接続専用となります。SPI 接続専用バージョンI2C / SPI 両接続バージョンがありますので購入時には間違えないようにしてください。

画像では端子が 4 つしかないのに商品説明で SPI と書かれている場合、またはその逆の場合にはどちらが送られてくるかわかりませんのでご注意ください。

See Also:


各部詳細

パネルは ER-OLED0.96-3W、OLED コントローラは SSD1306 のようです。入力電圧は 3.3V~5V です。端子はシルク印刷の通りですね。見た感じでは ELECROW 製品のコピーのようです。

このモジュールには最初からピンヘッダが半田付けされていますので、そのままブレッドボードに挿して使えます。4 線のケーブルも付属していますのでそちらを使う事もできます。

See Also:


動作確認

Arduino (UNO) との接続は以下のようになります。

VDD と 3V3 を繋いでいますが、5V でも構いません。

I2C OLED Arduino
GND 1 GND GND
VCC 2 VDD 3V3 / 5V
SCL 3 SCK A5
SDA 4 SDA A4

Arduino と OLED ディスプレイとの接続は I2C (Inter-Integrated Circuit) となります。


Adafruit ライブラリを使用

以下から Adafruit のライブラリを入手します。

サンプルスケッチは examples/ssd1306_128x64_i2c にある ssd1306_128x64_i2c.ino ですが、このままではうまく動きません。まずは Adafruit_SSD1306.h を編集します。

//   #define SSD1306_128_64
   #define SSD1306_128_32
//   #define SSD1306_96_16

デフォルトだと 128x32 の OLED になっているので、

   #define SSD1306_128_64
//    #define SSD1306_128_32
//   #define SSD1306_96_16

128x64 の OLED に変更します。サンプルスケッチの方も修正が必要です。ssd1306_128x64_i2c.ino を修正します。

  // by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
  display.begin(SSD1306_SWITCHCAPVCC, 0x3D);  // initialize with the I2C addr 0x3D (for the 128x64)
  // init done

0x3D になっている部分 (I2C スレーブアドレス) を SSD1306_I2C_ADDRESS または 0x3C に書き換えます。

  // by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
  display.begin(SSD1306_SWITCHCAPVCC, SSD1306_I2C_ADDRESS);  // initialize with the I2C addr
  // init done

コンパイルして実行するとデモが表示されます。



u8glib ライブラリを使用

以下から u8glib を入手してもいいのですが...

[スケッチ | ライブラリをインクルード | ライブラリを管理] から u8glib を探してインストールするのが簡単です。

サンプルスケッチの HelloWorld.pde は sys/arduino/HelloWorld/ にありますが、ここからコピーしてきてもいいでしょう。このスケッチでは LD7032 (I2C: 60x32) がデフォルトになっているので、以下の行を // でコメントアウトし、

U8GLIB_LD7032_60x32 u8g(U8G_I2C_OPT_NONE);      // I2C//U8GLIB_LD7032_60x32 u8g(U8G_I2C_OPT_NONE);      // I2C

SSD306 (I2C: 128x64) の行をアンコメントします。

//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0);        // I2C / TWI 
↓
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0);        // I2C / TWI 

コンパイルして実行するとデモが表示されます。

See Also:


ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。

メニュー: