I2CのOLEDモジュールを使ってみた
Table of Contents
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);
の初期化部分を変更します。
動作する様子 #
ちゃんと動作しました。ほどほどに高輝度です。
画面サイズは小さいが、表示器として十分な画素数がある #
試運転して驚いたのは、高輝度であること、そして反応の速さでした。 液晶と比べてハッキリ見えますし、表示がきびきびと変化していくので、しばらく見続けてしまいました。
このモジュールのディスプレイサイズは0.96インチと小さめですが、手元で使う用途のデバイスであれば、十分見えるサイズかなと思います。ウェアラブルデバイスであったり、デスクトップで使用するガジェットなど、使用者とデバイスの距離が近いものには、十分使えるサイズです。
一方、遠くから見る用途で使用する場合では、何が表示されているか判別することは難しいです。しかし、高輝度であること、面で発色することをうまく活かせば、LEDの代わりとして使うこともできるかもしれません(点滅で知らせるなど)。
128 * 64という画素数も、思ったより少なく感じませんでした。 インジケータとして、十分使える広さがあると感じました。
表示器はディスプレイドライバをチェックしよう #
液晶・OLED・LEDなどの表示系の部品は、ディスプレイドライバとセットになったモジュールになっていることがあります。 ディスプレイドライバがあることで、表示周りの実装が簡単にできるようになっています。 例えば、LEDならMAX7219、液晶ならST7032などがあり、これらとI2CやSPIで繋ぐだけで文字や図形を表示することがます。ディスプレイドライバに何を使っているかが確認できれば、だいたいのデバイスを動かせそうです。
今回は、DiyStudioのOLEDモジュールを使ってみて、その使い方と感想を書いてみました。 以上です。