本サイトでは、アフィリエイト広告およびGoogleアドセンスを利用しています。

HiLetGo の OLED の動作確認

Amazon で HiLetGo の有機 EL パネルを買ってみました。割と情報が多く見つかるのが 0.96 インチのものですが、買ったのは 1.3 インチのものです。また接続形式は I2C ではなく、 SPI でした。
動作を Arduino UNO を用いて確認したのですが、ちょっとポイントがあったので備忘録と、誰かの役に立つかもと思って、記録&公開しておきます。

接続について

Arduino と OLED との接続は以下のようになります(電源接続を除く)。
Fritzing で配線図を書こうと思ったのですが、 HiLetGo OLED と合う物が見つからず…

Adruinoピン OLEDピン
13 CLK
11 MOSI
10 CS
9 DC
8 RES

Arduino 側の準備

Arduino IDE から、 “u8glib” というライブラリを追加します。現時点では 1.19.1 というバージョンでした。ライブラリを追加して、メニューのスケッチ例から “GraphicsTest” を選択して、これを用いて動作の確認をします。

このスケッチでは、使用するパネル・コントローラーについて、コメントアウト行を適切に戻すのがまず必要です。
今対象としているパネルでは、 SDD1306 が使用されているようで、解像度は 128×64 という点より、 “U8GLIB_SSD1306_128X64” という箇所を見つけてコメントを外します。

早速実行してみる

準備が整ったので、早速実行してみます。画面が色々と切り替わって動作するのが確認出来ると思います。

しかし、画面表示が整っている状況ではありませんでした。次のように、なにやらおかしな表示結果となっていました。

左端が欠けている&右端にゴミデータが書かれている状況となっており、意図した状態となっていないようです。

ライブラリ側コードを変更する

正常に動作させるために、ライブラリのコードを変更します。

ライブラリに含まれる、”U8glib\src\clib\u8g_dev_ssd1306_128x64.c” のファイルを開いて、以下の該当箇所を書き換えます。

static const uint8_t u8g_dev_ssd1306_128x64_data_start[] PROGMEM = {
  U8G_ESC_ADR(0),  /* instruction mode */
  U8G_ESC_CS(1),   /* enable chip */
  0x010,           /* set upper 4 bit of the col adr to 0 */
  0x002,           /* set lower 4 bit of the col adr to 0  ここを編集 */ 
  U8G_ESC_END      /* end of sequence */
};

このように修正して、再度先ほどのスケッチを再コンパイルして実行させてみると、以下のようにうまく動作するようになると思います。

使用しているのは以下の商品ですが、ちょっとお値段が高めですかね・・・。 0.96インチしておけばもう少し安く買えますし、入手性もよさそうです。

( “HiLetgo® 1.3″ SPI 128×64 OLED LCD ディスプレイ 1.3インチ 液晶ディスプレイモジュール AVR PIC STM32 Arduinoに対応 並行輸入品” ※ 既に Amazon から同じものを見かけなくなってしまいました)

その他

Nokia 5110 液晶の代わりに、OLED はどうだろうと思って買ってみたのが動機です。 Nokia 5110 はバックライトあって低消費電力という点に惹かれて買いました。Nokia 5110 は、基板の大きさの割に表示可能エリアの部分は小さめです。

これらの2者で比較してみたら次のようになりました。

デバイス 表示可能エリア 解像度
Nokia 5110 28 x 19 (mm) 84 x 48
OLED 1.3 30 x 15 (mm) 128 x 64

OLED のほうが基板サイズが小さい割に、高解像度かつ表示エリアが Nokia のものと遜色ない程度になっていました。OLED は自己発光でバックライト不要ですし、十分 Nokia 5110 の代わりを果たしてくれそうな印象です。

電子工作
すらりんをフォローする
すらりん日記
タイトルとURLをコピーしました