Skip to main content
  1. Posts/

I2CのOLEDモジュールを使ってみた

Amazonのセールで買った有機ELディスプレイモジュールを買ってみました。 DiyStudioから出ている、0.96インチの有機ELディスプレイです。 今回は、このモジュールを試運転してみたので、使った感想を簡単に書いておきたいと思います。

購入したOLEDの仕様と使い方 #

今回購入したディスプレイモジュールについて、簡単に紹介します。

  • 画面サイズ: 0.96インチ
  • 画素数: 128 * 64
  • 表示色: 白
  • 電圧: 3.3V/5.0V
  • インタフェース: I2C
  • ディスプレイドライバ: SSD1306

モジュール自体のサイズは、3cm * 3cmとのこと。持った感覚では、SDカードと同じくらいのサイズ感でした。

データシートについては、特にリソースがなさそうでした。そのため、Amazonに載っている情報が頼りです。 回路図は用意されていたので、これが唯一の手がかりといった感じ……。

商品ページから引用

商品ページから引用

これらの情報からわかる、このモジュールの使い方は以下の通りです。

  • 3.3Vで繋げば動作する
  • 回路図によれば、I2CのSDA,SCLはモジュール内でプルアップされているから、マイコンとモジュールはワイヤーで繋ぐだけでOK
  • ディスプレイドライバ SSD1306 に対応したライブラリでプログラムを組めば動きそう

このようなことが、予想できました。

試運転 #

回路 #

では、早速組み立てていきます。 今回、マイコン側には、SwitchScienceから出ている「ESP-WROOM-02」の開発ボード「ESPr Developer」を使用しました。簡単に実験したい時には、スペック高めのESP32は使わず、ESP8266を使う方が多いです。 組み立てる回路は簡単です。ディスプレイ側のSDAとマイコン側のSDAピン(ESP-WROOM-02の4番ピン)を、ディスプレイ側のSCLとマイコン側のSCLピン(ESP-WROOM-02の5番ピン)を接続するだけです。プルアップはディスプレイモジュール内でされているので、抵抗は不要です。

超ざっくり書くとこんな感じ

超ざっくり書くとこんな感じ

ESP8266 and ESP32 OLED driver for SSD1306 #

プログラムの方は、ライブラリを入れて対応します。SSD1306に対応しているライブラリを導入します。 今回は「ESP8266 and ESP32 OLED driver for SSD1306」を使用します。

このライブラリのことについては全く詳しくありません。ESP8266やESP32に対応しているという点だけで導入しました。 AdafruitのライブラリもESP8266に対応していて良さそうでしたが、さらに依存するパッケージがあるようだったので、導入しませんでした。

「SSD1306SimpleDemo」を動かす #

では、ライブラリのExampleを使用して、試運転してみます。今回は「SSD1306SimpleDemo」を試してみます。

プログラムを変更する必要はありません。もし、SDA・SCLのピンをデフォルトとは別のピンにしていたら、それに応じて SSD1306Wire display(0x3c, SDA, SCL); の初期化部分を変更します。

モジュールの基板のシルク印刷では、I2Cのアドレスが0x7Bと記載されていますが、これでは動作しませんでした。実際には、0x3Cで動作しました。

動作する様子 #

ちゃんと動作しました。ほどほどに高輝度です。

画面サイズは小さいが、表示器として十分な画素数がある #

試運転して驚いたのは、高輝度であること、そして反応の速さでした。 液晶と比べてハッキリ見えますし、表示がきびきびと変化していくので、しばらく見続けてしまいました。

このモジュールのディスプレイサイズは0.96インチと小さめですが、手元で使う用途のデバイスであれば、十分見えるサイズかなと思います。ウェアラブルデバイスであったり、デスクトップで使用するガジェットなど、使用者とデバイスの距離が近いものには、十分使えるサイズです。

一方、遠くから見る用途で使用する場合では、何が表示されているか判別することは難しいです。しかし、高輝度であること、面で発色することをうまく活かせば、LEDの代わりとして使うこともできるかもしれません(点滅で知らせるなど)。

128 * 64という画素数も、思ったより少なく感じませんでした。 インジケータとして、十分使える広さがあると感じました。

表示器はディスプレイドライバをチェックしよう #

液晶・OLED・LEDなどの表示系の部品は、ディスプレイドライバとセットになったモジュールになっていることがあります。 ディスプレイドライバがあることで、表示周りの実装が簡単にできるようになっています。 例えば、LEDならMAX7219、液晶ならST7032などがあり、これらとI2CやSPIで繋ぐだけで文字や図形を表示することがます。ディスプレイドライバに何を使っているかが確認できれば、だいたいのデバイスを動かせそうです。

今回は、DiyStudioのOLEDモジュールを使ってみて、その使い方と感想を書いてみました。 以上です。