SSH1106 1.3inch OLED を調べました
ESP-xxシリーズを検討中にI2C対応のディスプレイが必要となり、SSD1306の
ものより少し大きい1.3インチのOLEDを検討しました。当初、解像度が同じ
なのでSSD1306用のものがそのまま利用できると思っていたのですが、
そのままでは利用できませんでした。その為、これを調べてESP-xxシリーズ
でも利用できる様に検討しました。 その内容は以下の様なものです。
<OLED SSH1106ディスプレイ の概要>
購入した「OLED SSH1106ディスプレイ」は Arduino 対応のもので、次の様な
ものでした。
1.画素数 128x64ドットの有機LEDディスプレイ
(ドライバは132x64)
2.青色の発光色(白色の製品も有り)
3.標準インターフェイス 4線式SPIシリアル
(抵抗付け替えにより I2C が可能)
4.ドライバICは SSH1106
5.SSD1306に比べて、表示開始位置が2ドット分右で、
右端まで描画したら、改行の指定が必要
(SSD1306のものをそのまま使うと、右端2ドット分の書き残しと
先頭行のみの描画の繰り返しが発生する)
<I2C動作への改造>
4線式SPIが標準で実装されていますが、I2Cインターフェイスへの対応が改造
により可能です。先頭の写真の右側にある裏面の写真で、現在SPI側に接続
されている抵抗を、I2C側に移動させればI2Cの入力となります。
[接続]
OLEDboard Arduino UNO ESP-xx
GND Gnd GND
VCC 5V 3.3V
CLK A5 (SCL) GPIO2
MOSI A4 (SDA) GPIO0
RES RST RES
DC Gnd GND
CS x (no connection) x (no connection)
<関連資料>
1.ドライバのチップ(SSH1106)のデータシートは次のURLから入手可能です
URL : http://www.allshore.com/pdf/SH1106.pdf
2.グラフィックライブラリは次のURLから入手可能です
Adafruit_GFX : URL https://github.com/adafruit/Adafruit-GFX-Library
Adafruit_SH1106 : URL https://github.com/wonho-maker/Adafruit_SH1106
(もう一つのライブラリのU8g2はライブラリマネージャからインストール
可能です。)
<テスト内容>
ESP-xxモジュールとI2Cの接続で利用可能なライブラリとして、U8g2と
Adafruitのものを検討して、そのライブラリのテスト用プログラムを、AVRと
ESP-xxのチップで動作する事を確認しました。
[目的と結果]
テストの確認目標は次のものでした。
1.次の2種類のライブラリを利用したものの動作方法の確認
・Arduino のライブラリ管理からインストールできる「U8g2」 を
利用したもの
・Web上で公開されている「Adafruit_SH1106」を利用したもの
2.ESPチップで動作しない場合は、動作させる為の改造を検討
3.必要な改造をしたものが、AVRとESPのチップで動作する事を確認
結果としては、Adafruitのライブラリには改造が必要で、U8g2はそのまま利用
できる事が判りました。Adafruitのライブラリの改造に関しては、SSD1306用
のものはESPのチップへの対応ができていたので、それを参考にして対応する
事ができました。またU8g2の方はサンプルコード先頭の各種のチップ用の
リストの中にSSH1106のI2C用のものが有りませんでしたが、ライブラリコード
内では定義されていたのでその情報を利用しました。
[テストでの機器の接続]
[動作状況等]
動作状況等はSSD1306に関する項目を参考にして下さい。
[コードとビットマップファイルサンプル]
コードとビットマップファイル関連の資料一式は次のURLからダウンロード
可能です。
関連資料一式
ものより少し大きい1.3インチのOLEDを検討しました。当初、解像度が同じ
なのでSSD1306用のものがそのまま利用できると思っていたのですが、
そのままでは利用できませんでした。その為、これを調べてESP-xxシリーズ
でも利用できる様に検討しました。 その内容は以下の様なものです。
<OLED SSH1106ディスプレイ の概要>
購入した「OLED SSH1106ディスプレイ」は Arduino 対応のもので、次の様な
ものでした。
1.画素数 128x64ドットの有機LEDディスプレイ
(ドライバは132x64)
2.青色の発光色(白色の製品も有り)
3.標準インターフェイス 4線式SPIシリアル
(抵抗付け替えにより I2C が可能)
4.ドライバICは SSH1106
5.SSD1306に比べて、表示開始位置が2ドット分右で、
右端まで描画したら、改行の指定が必要
(SSD1306のものをそのまま使うと、右端2ドット分の書き残しと
先頭行のみの描画の繰り返しが発生する)
<I2C動作への改造>
4線式SPIが標準で実装されていますが、I2Cインターフェイスへの対応が改造
により可能です。先頭の写真の右側にある裏面の写真で、現在SPI側に接続
されている抵抗を、I2C側に移動させればI2Cの入力となります。
[接続]
OLEDboard Arduino UNO ESP-xx
GND Gnd GND
VCC 5V 3.3V
CLK A5 (SCL) GPIO2
MOSI A4 (SDA) GPIO0
RES RST RES
DC Gnd GND
CS x (no connection) x (no connection)
<関連資料>
1.ドライバのチップ(SSH1106)のデータシートは次のURLから入手可能です
URL : http://www.allshore.com/pdf/SH1106.pdf
2.グラフィックライブラリは次のURLから入手可能です
Adafruit_GFX : URL https://github.com/adafruit/Adafruit-GFX-Library
Adafruit_SH1106 : URL https://github.com/wonho-maker/Adafruit_SH1106
(もう一つのライブラリのU8g2はライブラリマネージャからインストール
可能です。)
<テスト内容>
ESP-xxモジュールとI2Cの接続で利用可能なライブラリとして、U8g2と
Adafruitのものを検討して、そのライブラリのテスト用プログラムを、AVRと
ESP-xxのチップで動作する事を確認しました。
[目的と結果]
テストの確認目標は次のものでした。
1.次の2種類のライブラリを利用したものの動作方法の確認
・Arduino のライブラリ管理からインストールできる「U8g2」 を
利用したもの
・Web上で公開されている「Adafruit_SH1106」を利用したもの
2.ESPチップで動作しない場合は、動作させる為の改造を検討
3.必要な改造をしたものが、AVRとESPのチップで動作する事を確認
結果としては、Adafruitのライブラリには改造が必要で、U8g2はそのまま利用
できる事が判りました。Adafruitのライブラリの改造に関しては、SSD1306用
のものはESPのチップへの対応ができていたので、それを参考にして対応する
事ができました。またU8g2の方はサンプルコード先頭の各種のチップ用の
リストの中にSSH1106のI2C用のものが有りませんでしたが、ライブラリコード
内では定義されていたのでその情報を利用しました。
[テストでの機器の接続]
[動作状況等]
動作状況等はSSD1306に関する項目を参考にして下さい。
[コードとビットマップファイルサンプル]
コードとビットマップファイル関連の資料一式は次のURLからダウンロード
可能です。
関連資料一式