0.96インチOLEDディスプレイを動かして見ました
グラフィック表示可能なものとして小さいけど割と安価のものが有ったので
例によって中国から購入して動かして見ました。結果としては、表示画面は
小さいのですが、それなりに利用できる事が判りました。
<OLED SSD1306ディスプレイ の概要>
購入した「OLED SSD1306ディスプレイ」は「Arduino UNO」対応のもので、
次の様なものでした。
1.画素数 128x64ドットの有機LEDディスプレイ
2.白色の発光色(青色の製品も有り)
3.標準インターフェイス 4線式SPIシリアル
(改造により I2C も可能)
4.ドライバICは SSD1306
<関連資料>
ボードの資料としては次のものが参考となります。
URL : http://electronics.stackexchange.com/questions/164680/ssd1306-display-spi-connection-or-i2c-according-to-resistors/269790
ドライバのチップ(SSD1306)のデータシートは次のURLから入手可能です
URL : https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf
<テスト内容>
OLEDディスプレイのテストは次の様な内容で、公開されているデモ用の
プログラム(2種類)の動作をさせる事にしました。
[目的と結果]
テストの確認目標は次のものでした。
1.次の2種類のライブラリを利用したものの動作方法の確認
・Arduino のライブラリ管理からインストールできる「U8g2」 を
利用したもの
・Web上で公開されている「Adafruit_SSD1306」を利用したもの
2.および、それが動作する事を確認
3.それぞれのプログラムが消費するメモリ容量の確認
結果としては、それぞれのサンプルプログラム共良好に動作し、期待した
結果が得られました。なお、メモリの消費量は各々次の様な値で、
動作内容の違いがあるので端的には結論づけられませんが、
「Adafruit_SSD1306」を使ったものの方が少し有利の様です。
(U8g2のものでは、メモリショートの警告が出る。)
・U8g2 : flash memory 21564/32256, ram 1661/2048
・Adafruit_SSD1306 : flash memory 17080/32256, ram 1515/2048
[テストでの機器の接続]
[U8g2のライブラリとサンプルスケッチ]
まずU8g2をインストール
次にテストコードをオープン
最後にテストコードから目標のラインを選択
1.ライブラリの管理からライブラリーマネージャを開き U8g2をインストール
2.次に、U8g2のサンプルコードから GraphicsTest を選択
3.オープンしたサンプルコードから目的のものを選択して有効化
(先頭の // を消去)
[Adafruit_SSD1306のライブラリとサンプルスケッチ]
次の2つのライブラリをダウンロードしてArduinoのライブラリフォルダに置く
1.Adafruit_SSD1306
URL : https://github.com/adafruit/Adafruit_SSD1306
2.Adafruit-GFX
URL : https://github.com/adafruit/Adafruit-GFX-Library
サンプルスケッチは exsamples\ssd1306_128x64_spi のものを使用
ただし、ポートの割り付けはU8g2のGraphicTestにに合わせて、
ライブラリの「Adafruit_SSD1306.h」は元のものは32ラインのものに
設定して有るので64ラインの方に切り替える。
(73行目を有効化し、74行目をコメントにする。)
[動作状況]
<U8g2のサンプル>
<Adafruit_SSD1306のサンプル>
<I2C動作への改造>
4線式SPIが標準で実装されていますが、3線式SPIおよび
I2Cインターフェイスへの対応が改造により可能となっている様です。
I2Cへの対応に関してはこちらでも確認し、結果としては次の様に
なりました。(動作速度はかなり遅くなりました。)
[ハードの改造]
基板裏に書いてあるコメントに従って次の様に変更します。
[接続]
OLEDboad Arduino UNO
GND Gnd
VCC 5v
D0 A5 (SCL)
D1 A4 (SDA)
RES RST
DC Gnd
CS x (no connection)
[ソフトの変更]
U8g2のサンプルに関しては、I2Cの項目を有効にすれば、そのまま
使え、変更は必要有りませんが、Adafruit_SSD1306用のものは
exsamplesに有る「ssd1306_128x64_i2c」のI2Cのアドレスの値が
異なっており、修正(0x3D -> 0x3C)する必要が有ります。
例によって中国から購入して動かして見ました。結果としては、表示画面は
小さいのですが、それなりに利用できる事が判りました。
<OLED SSD1306ディスプレイ の概要>
購入した「OLED SSD1306ディスプレイ」は「Arduino UNO」対応のもので、
次の様なものでした。
1.画素数 128x64ドットの有機LEDディスプレイ
2.白色の発光色(青色の製品も有り)
3.標準インターフェイス 4線式SPIシリアル
(改造により I2C も可能)
4.ドライバICは SSD1306
<関連資料>
ボードの資料としては次のものが参考となります。
URL : http://electronics.stackexchange.com/questions/164680/ssd1306-display-spi-connection-or-i2c-according-to-resistors/269790
ドライバのチップ(SSD1306)のデータシートは次のURLから入手可能です
URL : https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf
<テスト内容>
OLEDディスプレイのテストは次の様な内容で、公開されているデモ用の
プログラム(2種類)の動作をさせる事にしました。
[目的と結果]
テストの確認目標は次のものでした。
1.次の2種類のライブラリを利用したものの動作方法の確認
・Arduino のライブラリ管理からインストールできる「U8g2」 を
利用したもの
・Web上で公開されている「Adafruit_SSD1306」を利用したもの
2.および、それが動作する事を確認
3.それぞれのプログラムが消費するメモリ容量の確認
結果としては、それぞれのサンプルプログラム共良好に動作し、期待した
結果が得られました。なお、メモリの消費量は各々次の様な値で、
動作内容の違いがあるので端的には結論づけられませんが、
「Adafruit_SSD1306」を使ったものの方が少し有利の様です。
(U8g2のものでは、メモリショートの警告が出る。)
・U8g2 : flash memory 21564/32256, ram 1661/2048
・Adafruit_SSD1306 : flash memory 17080/32256, ram 1515/2048
[テストでの機器の接続]
[U8g2のライブラリとサンプルスケッチ]
まずU8g2をインストール
次にテストコードをオープン
最後にテストコードから目標のラインを選択
1.ライブラリの管理からライブラリーマネージャを開き U8g2をインストール
2.次に、U8g2のサンプルコードから GraphicsTest を選択
3.オープンしたサンプルコードから目的のものを選択して有効化
(先頭の // を消去)
[Adafruit_SSD1306のライブラリとサンプルスケッチ]
次の2つのライブラリをダウンロードしてArduinoのライブラリフォルダに置く
1.Adafruit_SSD1306
URL : https://github.com/adafruit/Adafruit_SSD1306
2.Adafruit-GFX
URL : https://github.com/adafruit/Adafruit-GFX-Library
サンプルスケッチは exsamples\ssd1306_128x64_spi のものを使用
ただし、ポートの割り付けはU8g2のGraphicTestにに合わせて、
ライブラリの「Adafruit_SSD1306.h」は元のものは32ラインのものに
設定して有るので64ラインの方に切り替える。
(73行目を有効化し、74行目をコメントにする。)
[動作状況]
<U8g2のサンプル>
<Adafruit_SSD1306のサンプル>
<I2C動作への改造>
4線式SPIが標準で実装されていますが、3線式SPIおよび
I2Cインターフェイスへの対応が改造により可能となっている様です。
I2Cへの対応に関してはこちらでも確認し、結果としては次の様に
なりました。(動作速度はかなり遅くなりました。)
[ハードの改造]
基板裏に書いてあるコメントに従って次の様に変更します。
[接続]
OLEDboad Arduino UNO
GND Gnd
VCC 5v
D0 A5 (SCL)
D1 A4 (SDA)
RES RST
DC Gnd
CS x (no connection)
[ソフトの変更]
U8g2のサンプルに関しては、I2Cの項目を有効にすれば、そのまま
使え、変更は必要有りませんが、Adafruit_SSD1306用のものは
exsamplesに有る「ssd1306_128x64_i2c」のI2Cのアドレスの値が
異なっており、修正(0x3D -> 0x3C)する必要が有ります。