趣味のマイコンいじり

安価なマイコンを利用して作成したアプリの紹介です。

SSH1106 1.3inch OLED を調べました

ESP-xxシリーズを検討中にI2C対応のディスプレイが必要となり、SSD1306の
ものより少し大きい1.3インチのOLEDを検討しました。当初、解像度が同じ
なのでSSD1306用のものがそのまま利用できると思っていたのですが、
そのままでは利用できませんでした。その為、これを調べてESP-xxシリーズ
でも利用できる様に検討しました。 その内容は以下の様なものです。

<OLED SSH1106ディスプレイ の概要>
  購入した「OLED SSH1106ディスプレイ」は Arduino 対応のもので、次の様な
  ものでした。
   イメージ 1

  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用のものが有りませんでしたが、ライブラリコード
     内では定義されていたのでその情報を利用しました。
    
 [テストでの機器の接続]
    イメージ 2

   イメージ 3


 [動作状況等]
   動作状況等はSSD1306に関する項目を参考にして下さい。


 [コードとビットマップファイルサンプル]
  コードとビットマップファイル関連の資料一式は次のURLからダウンロード
    可能です。

      関連資料一式